Делаем основное меню

Делаем основное меню

В левой части админки будет находиться основное меню, с помощью которого мы будем осуществлять навигацию по страницам системы управления контентом. Меню реализуем с помощью 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>&nbsp;Страницы сайта</span>
        <ul>
          <li><span>&nbsp;<a href="#" class="admin_menu_off">Каталог страниц</a></span></li>
          <li><span>&nbsp;<a href="#" class="admin_menu_off">Новости</a></span></li>
        </ul>
      </li>
      <li><span>&nbsp;Настройки</span>
        <ul>
          <li><span>&nbsp;<a href="#" class="admin_menu_off">Пользователи</a></span></li>
          <li><span>&nbsp;<a href="#" class="admin_menu_off">Группы пользователей</a></span></li>
          <li><span>&nbsp;<a href="#" class="admin_menu_off">Настройки</a></span></li>
          <li><span>&nbsp;<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 по клику на элементы главного меню. Об этом подробнее в следующих статьях.

Похожие пубикации

CodeIgniter начало

CodeIgniter начало

Как уже упоминалось в статье Общие вопросы проектирования CMS, в качестве фреймворка для реализации движка CMS мы будем использовать CodeIgniter. О его приемуществах и недостатках можно почитать на бескрайних просторах интернета. Мне же лично он нравится прежде всего своей простотой, гибкостью использования, хорошей документированностью, быстрой скоростью работы, элементарной установкой на сервер и т.д. В настоящей статье рассматривается вопрос установки фреймворка для работы двух приложений на одном ядре, а также некоторые подготовительные действия для дальнейшего разворачивания системы управления контентом.
Верстаем с помощью технологии XSLT

Верстаем с помощью технологии XSLT

В рубрике CMS - верстка, на момент написания статьи "Верстка элементов центрального контента" был сделан каркас будущей CMS и сверстана центральная часть нашей системы. Теперь сделаем тоже самое, но уже с использованием технологии XML / XSLT.
Верстка элементов центрального контента

Верстка элементов центрального контента

Центральная часть CMS будет содержать в основном табличные данные. Следуя принципам семантической верстки, необходимо сверстать просто таблицу, а потом ее приукрасить стилями и JavaScript. В верхней части таблицы необходимо предусмотреть место для общих заголовков, элементов управления, таких как постраничная навигация и форма поиска, и заголовков столбцов таблицы. Внизу, под таблицей будут кнопки управления для добавления, сохранения и удаления содержимого таблицы.
Добавить комментарий:



Back to Top