В левой части админки будет находиться основное меню, с помощью которого мы будем осуществлять навигацию по страницам системы управления контентом. Меню реализуем с помощью jQuery плагина раскрывающееся дерево - jQuery SimpleTree Drag&Drop.
Плагин для создания раскрывающегося дерева jQuery Simple Tree Drag&Drop прост в применении и имеет достаточный функционал для реализации меню нашей CMS. Посмотреть основные свойства плагина и скачать сам плагин можно здесь: SimpleTree Plugin.
Библиотека JQUERY была подключена в статье Подключаем JQUERY. Для работы с Simple Tree необходимо подключить сам плагин, его стили и в папку с изображениями добавить изображения самого плагина.
В разделе HEAD подключаем плагин и стили:
<link rel="stylesheet" type="text/css" href="tree.css" /> <sсript type="text/javascript" src="js/jquery.simple.tree.js"></sсript>
Само меню представляет из себя ul список определенной структуры:
<ul class="simpleTree">
<li class="root">
<span><a id="id_main_menu" href="#/main_menu" class="admin_menu_on first_a">Главная страница</a></span>
<ul class="first_ul">
<li class="open"><span> Страницы сайта</span>
<ul>
<li><span> <a href="#" class="admin_menu_off">Каталог страниц</a></span></li>
<li><span> <a href="#" class="admin_menu_off">Новости</a></span></li>
</ul>
</li>
<li><span> Настройки</span>
<ul>
<li><span> <a href="#" class="admin_menu_off">Пользователи</a></span></li>
<li><span> <a href="#" class="admin_menu_off">Группы пользователей</a></span></li>
<li><span> <a href="#" class="admin_menu_off">Настройки</a></span></li>
<li><span> <a href="#" class="admin_menu_off">Изменение пароля</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
Где:
- ul class="simpleTree" - основной список
- li class="root" - корневой элемент дерева
- ul class="first_ul" - элементы этого списка будут составлять основу дерева
- li элементы не содержащие внутреннего списка ul - обычные элементы списка
- li элементы, содержащие внутренний список ul - имеют вид директории с вложенными элементами списка
Стили, которые отвечают за отображение нашего меню:
.simpleTree {
margin:0;
padding:0 0 9px 0px;
border:none;
}
.simpleTree li {
list-style: none;
margin:0;
padding:0 0 1px 34px;
line-height: 14px;
border:none;
}
.simpleTree li span {
display:inline;
clear: left;
white-space: nowrap;
border:none;
}
.simpleTree ul {
margin:0;
padding:0 0 3px 0px;
border:none;
}
.simpleTree .root {
margin-left:-10px;
background: url(img/tree/root.gif) no-repeat 16px 0;
border:none;
}
.simpleTree .first_ul{
margin:6px 0 0 0;
border:none;
}
.simpleTree .first_a{
font-weight:bold;
font-size:12px;
border:none;
}
.simpleTree .line {
margin:0 0 0 -16px;
padding:0;
line-height: 3px;
height:3px;
font-size:3px;
background: url(img/tree/line_bg.gif) 0 0 no-repeat transparent;
border:none;
}
.simpleTree .line-last {
margin:0 0 0 -16px;
padding:0;
line-height: 3px;
height:3px;
font-size:3px;
background: url(img/tree/spacer.gif) 0 0 no-repeat transparent;
border:none;
}
.simpleTree .line-over {
margin:0 0 0 -16px;
padding:0;
line-height: 3px;
height:3px;
font-size:3px;
background: url(img/tree/line_bg_over.gif) 0 0 no-repeat transparent;
border:none;
}
.simpleTree .line-over-last {
margin:0 0 0 -16px;
padding:0;
line-height: 3px;
height:3px;
font-size:3px;
background: url(img/tree/line_bg_over_last.gif) 0 0 no-repeat transparent;
border:none;
}
.simpleTree .folder-open {
margin-left:-16px;
background: url(img/tree/collapsable.gif) 0 -2px no-repeat;
border:none;
}
.simpleTree .folder-open ul {
padding:4px 0 0 0;
border:none;
}
.simpleTree .folder-open-last {
margin-left:-16px;
background: url(img/tree/collapsable-last.gif) 0 -2px no-repeat;
border:none;
}
.simpleTree .folder-close {
margin-left:-16px;
background: url(img/tree/expandable.gif) 0 -2px no-repeat;
border:none;
}
.simpleTree .folder-close-last {
margin-left:-16px;
background: url(img/tree/expandable-last.gif) 0 -2px no-repeat;
border:none;
}
.simpleTree .doc {
margin-left:-16px;
background: url(img/tree/leaf.gif) 0 -1px no-repeat;
border:none;
}
.simpleTree .doc-last {
margin-left:-16px;
background: url(img/tree/leaf-last.gif) 0 -1px no-repeat;
border:none;
}
.simpleTree .ajax {
background: url(img/tree/spinner.gif) no-repeat 0 0;
height: 16px;
display:none;
border:none;
}
.simpleTree .ajax li {
display:none;
margin:0;
padding:0;
border:none;
}
.simpleTree .trigger {
display:inline;
margin-left:-32px;
width: 28px;
height: 11px;
cursor:pointer;
border:none;
}
.simpleTree .text {
cursor: default;
border:none;
}
.simpleTree .active {
font-weight:inherit;
color: inherit;
cursor: default;
padding:0px 0px;
border:none;
}
.contextMenu {
display:none;
border:none;
} И небольшой javascript-код, подключающий сам плагин:
$(function(){
vаr simpleTreeCollection;
simpleTreeCollection = $(".simpleTree").simpleTree({
autoclose: true,
drag: false,
speed: "fast",
animate:true
});
});
Где определяются свойства плагина:
- autoclose: true - автоматическое закрытие соседних веток при клике на элемент списка
- drag: false - отмена перемещения элементов
- speed: 'fast' - скорость открытия папки
- animate:true - используем анимацию
Собственно и все. Единственное, что еще можно сказать: меню, как и шапка будет загружаться один раз, центральная часть нашей CMS будет подгружаться с помощью AJAX по клику на элементы главного меню. Об этом подробнее в следующих статьях.





