Как оформить навигацию (меню) nanoCMS:
Инструкции для формирования всех менюшек (верхнего меню блога, если оно предусмотрено шаблоном дизайна, а также двух боковых) размещаются в файле ./data/content/_menu.php в виде массивов PHP.
Поскольку это не голый HTML, то тут при необходимости можно ввести какую-то интерактивность, поручив менюшкам реагировать на внешние события. К примеру, просматривая указанный файл, непременно обратите внимание, как верхняя менюшка обнаруживает факт авторизации в админке, и меняет набор своих кнопочек.
Рассмотрим запись для левой панельки- правая формируется аналогично.
# Левая менюха навигации. Может отсутствовать. $left_menu=array( 'Название раздела:' => array( array('filename-a.htm','Титл линка','Название кнопки'), array('folder/filename-b.htm','Титл линка','Название кнопки'), array('filename-c.htm','Титл линка','Название кнопки'), ), 'Ещё раздел:' => array( array('filename-aa.htm','Титл линка','Название кнопки'), array('filename-bb.htm','Титл линка','Название кнопки'), ), );
Вместо Название раздела: Вы можете написать то, что станет ненажимаемой кнопкой над этой секцией нажимаемых кнопочек. Понятно, что внутри одинарных кавычек никак нельзя употреблять одинарные же кавычки, иначе нарвётесь на ошибку парсера РНР. Двойные кавычки использовать не запрещено- ниже Вам встретится и такой вариант.
Далее идёт произвольное число кнопок секции- каждая формируется массивчиком из трёх элементов, задающих адрес страницы, всплывающую подсказку для линка с кнопки, текст на морде кнопки соответственно.
Пожалуйста, помните, что адрес страницы понимается относительно корня движка, поэтому, если Вы создаёте в папке с контентом вложенные папки, а в них какие-то документы, то и адресоваться между документами различных папок, в том числе и через меню, необходимо с указанием относительного пути до этих документов.
К примеру, если в папке контента мы создадим фолдер с именем folder, то вторая кнопка первой секции из кода приведённого выше примера показывает, как следует адресоваться к документу в этом фолдере.
В движок изначально заложена и другая затейливость: такие относительные ссылки со всех менюшек автоматически превращаются движком в абсолютные, но открываются в том же окне. А если ссылка изначально указана как
Заместо 'Титл линка' можно указать просто '' - в этом случае всплывающая подсказка не формируется.
Любые изменения внешнего вида кнопок достигаются через файлы стилей. Движок не имеет никакого отношения к прорисовке навигационных панелек- он просто выводит в HTML код страницы упорядоченные списки. Как это смотрится, его не касается.
Атрибуты ссылок:
Иногда возникает потребность привнести в ссылку с кнопки какую-нибудь особенность- например, закрыть её для передачи ссылочного веса атрибутом rel="nofollow". Как это делается?
1 2 3 4 | array('filename-a.htm rel="nofollow"','Титл линка','Название кнопки'), array('filename-b.htm target="_blank"','Титл линка','Название кнопки'), array('filename-c.htm target="_blank" rel="nofollow"','','Имя кнопки'), array('filename-d.htm id="linkid"','Титл линка','Название кнопки'), |
Пример содержит четыре варианта:
- Закрытие линка от передачи по нему ссылочного веса.
- Открытие ссылки в новом окне.
- Комбинацию предыдущих двух вариантов.
- Кнопка приобретает стиль, предусмотренный CSS.
Изыски:
Иногда зачем-нибудь возникает необходимость нарисовать титульную кнопочку (именуемую тут ненажимаемой) без подчинённых ей нажимаемых. Это делается так:
# Левая менюха навигации. Может отсутствовать. $left_menu=array( 'Ненажимаемая кнопка:' => $null, 'Первый раздел:' => array( array('filename-aa.htm','Титл линка','Название кнопки'), array('filename-bb.htm','Титл линка','Название кнопки'), ), );
Если наоборот, нужен только блочок нажимаемых кнопочек, без возглавляющей его ненажимаемой, то просто сделайте надпись на ненажимаемой кнопочке короче четырёх символов (цифру любую напишите), и она отображаться не станет:
# Левая менюха навигации. Может отсутствовать. $left_menu=array( 'Not' => array( array('filename-a.htm','Титл линка','Название кнопки'), array('folder/filename-b.htm','Титл линка','Название кнопки'), array('filename-c.htm','Титл линка','Название кнопки'), ), 'Эту кнопку видно:' => array( array('filename-aa.htm','Титл линка','Название кнопки'), array('filename-bb.htm','Титл линка','Название кнопки'), ), );
При этом всегда помните, что имя титульной кнопочки является ключом массива, содержащего информацию о кнопках этой секции. А потому имя титульной кнопки обязано быть уникальным, и не должно повторяться.