• Размер шрифта:
  • Home
  • Email
  • Stat
  • Login

Ваш сайт сильно структурирован и имеет много фолдеров?

Если так, то Вы по-любому каждому фолдеру папки ./data/content/ дали по собственному файлику меню. Там описаны три панельки- верхняя менюшка, левая и правая.

С левой менюшкой всё предельно просто- там Вы ссылаетесь на документы этого раздела. Ведь именно с такой целью документы и выделяются в обособленный раздел, чтобы дать им собственную навигацию. С верхней менюшкой тоже мороки никакой- она шаблонна, и открывает быстрый доступ к важным документам сайта. А вот в правой панели навигации традиционно перечисляются разделы сайта, куда посетитель может перейти.

Когда таких разделов всего ничего, никаких эмоций не возникает.
Но вот если разделов у Вас немало, Вы можете возроптать.
В чём причина протеста?

Недовольство вызвано тем, что сайт напоминает живой организм: в нём непрерывно что-то рождается, множится и отмирает. Меняются названия разделов, варьируется их номенклатура. Это происходит постоянно, и, вообще-то говоря, вызывает необходимость корректировки файлика меню каждого из разделов.

Когда разделов не один десяток, произносится матерное слово.
Можно как-нибудь без него обойтись?
Да.

Мы уже оговаривали в разделе про меню, что в каждой из панелек, хоть в левой, хоть в правой, можно насобирать по большому стаду кнопочек, структурировав их в несколько упорядоченных отар. Но весь прикол состоит в том, что любую из переменных $left_menu $right_menu $top_menu можно не только вообще выбросить (и тогда соответствующая менюшка исчезнет), но и определить в другом месте, видимом для всех фолдеров.

Так, если всю конструкцию

# Правая менюха навигации. Может отсутствовать.
   $right_menu=array(
      'Важные кнопки:' => array(
         array('','Базовая nano-CMS','Базовая Нана'),
         array('simple/','Simple nano-CMS','Крошечная Нана'),
         /* ну и прочий код других кнопок */
      ),
      'Явно полезное:' => array(
         array('blog.htm','','Новости нашего блога'),
      ),
   );

из файла _menu.php каждого фолдера изъять, и перенести внутрь контейнера <?php ?> файла ./data/settings.php, то все эти кнопки нарисуются в правой панельке каждого фолдера.

И Вы теперь можете управлять ими из одного места.
Что и требовалось.

Далее могут возникнуть три-четыре закономерных вопроса.

Что делать, когда нужно какому-то фолдеру дать свою панельку кнопок?

В файле меню этого фолдера оставить переменную с описанием таких кнопок. Она отменит всё то, что велено в файле сеттингов, и запустит для данного фолдера в работу собственное стадо кнопочек.

А если к общим для всех фолдеров кнопкам снизу хочется дописать свои?

В файле _menu.php этого фолдера употребите такой изыск:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Правая менюха навигации. Может отсутствовать.
   $right_menu=array_merge(
      $right_menu, # Это общие кнопки всего сайта
      array(
         'Нижние кнопки:' => array(
            array('file1.htm','alt','Кнопка 1'),
            array('file2.htm','alt','Кнопка 2'),
         ),
         'Ещё кнопки:' => array(
            array('file3.htm','alt','Кнопка 3'),
            array('file4.htm','alt','Кнопка 4'),
         ),
      )
   );

Как Вы понимаете, мы слили два массива кнопок (заданный ранее и определённый здесь) в один стандартным оператором PHP.

А если наоборот, надо разместить свои кнопки фолдера выше общих?

Тогда сливаете массивы в обратном порядке:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Правая менюха навигации. Может отсутствовать.
   $right_menu=array_merge(
      array(
         'Верхние кнопки:' => array(
            array('file1.htm','alt','Кнопка 1'),
            array('file2.htm','alt','Кнопка 2'),
         ),
         'Чуть пониже:' => array(
            array('file3.htm','alt','Кнопка 3'),
            array('file4.htm','alt','Кнопка 4'),
         ),
      ),
      $right_menu  # Это общие кнопки всего сайта
   );

А если охота сверху и снизу общих кнопок нарисовать для фолдера свои?

Ничего концептуально нового - сливаем теперь уже три массива:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Правая менюха навигации. Может отсутствовать.
   $right_menu=array_merge(
      array(
         'Верхние кнопки:' => array(
            array('file1.htm','alt','Кнопка 1'),
            array('file2.htm','alt','Кнопка 2'),
         )
      ),
      $right_menu, # Это общие кнопки всего сайта
      array(
         'Нижние кнопки:' => array(
            array('file3.htm','alt','Кнопка 3'),
            array('file4.htm','alt','Кнопка 4'),
         ),
      )
   );

© 2008-2010 Lasto Nano CMS Стандартная версия | Programming V.Lasto | Povered by Nano-CMS | Designer S.Gordi | Memory consumption: 1.25 Mb