Меню в CMSMS это, пожалуй, первый элемент с которым столкнется разработчик при знакомстве с этой замечательной CMS. Как понятно из названия, этот модуль нужен для создания меню, я же его еще использую для создания списка элементов (грид). Например, сделать список продуктов с кратким описанием на одной странице. Так как в CMSMS нет Content type (как у Drupal с его модулем Views) разделять типы элементов можно с помощью дополнительныйх полей (что хоть не очень удобно, справляется с поставленной задачей). Просто нужно получить содердание поля в модуле меню, для этого нам понадобится 2 модуля CGSimpleSmarty ( надо установить) и MenuManager идет вместе с CMSMS. Думаю дальше дело техники, так что сделаю просто справку (это перевод помощи собранный в одном месте):
MenuManager
Добавление модуля на страницу или глобальный контент. Все параметры необъязательны:
- lang=’en_US’ — язык показа
- collapse=’1′ — Включить (установить в 1) чтобы спрятать элементы не относящиеся к текущему узлу.
- loadprops=’0′ — отменить загрузку дополнмтельных полей (таких как extra1, image, thumbnail, etc). Используется для уменьшения количества запросов к базе и экономии памяти.
- items=’contact,home’ — список псевдонимов страниц разделенных запятыми, которые нужно отобразить в меню.
- number_of_levels=’1′ — ограничить количество уровней менб для отоброжения.
- show_all=’0′ — отображать все пункты меню, включая скрытые. Не отображает не активные страницы.
- show_root_siblings=’1′ — используется вместе с start_element или start_page. Указывет на отображение братьев корня.
- start_level=’2′ — Начать отображение меню с указанного уровня.
- start_element=’1.2′ -начать отображение с определенного элемента из иерархии (например 5.1.2).
- start_page=’home’ — отобразить меню определенной страницы по псевдониму и ее детей.
- template=’simple_navigation.tpl’ — Имя шаблона меню. Если указано расширение, система попытается найти файл из папки шаблонов. В противном случае, шаблон ищется в базе данных.
- excludeprefix=’ ‘ — исключить страницы, псевдоним которых начинается с указанных слов, разделенных через запятую.
- includeprefix=’ ‘ — включить только страницы, псевдоним которых начинается с указанных слов, разделенных через запятую.
- childrenof=’ ‘ — Отображать детей определенной страницы. Например {menu childrenof=$page_alias} покажет только детей текущей страницы.
- nocache=’ ‘ — отменить кеширование.
Параметры внутри модуля:
- $node->id — Идантификатор
- $node->url — URL до страницы
- $node->accesskey — Кнопка доступа, если установлена
- $node->tabindex — Индекс табуляции, если установлен
- $node->titleattribute — Описание или заголовок, если установлен
- $node->hierarchy — позиция в иерархии, (например. 1.3.3)
- $node->depth — глубина узла в текущем меню
- $node->prevdepth — глубина узла перед текущем меню
- $node->haschildren — true если текущий узел имеет дочерние элементы для отображения
- $node->children_exist — true если текущий узел имеет дочерние элементы в базе данных для отображения
- $node->menutext — текст меню
- $node->raw_menutext — текст меню без HTML преобразования
- $node->alias — псевдоним страницы
- $node->extra1 — значение дополнительного поля 1.
- $node->extra2 — значение дополнительного поля 1.
- $node->extra3 — значение дополнительного поля 1.
- $node->image — значение поля изображения.
- $node->thumbnail — значение поля миниатюры изображения.
- $node->target — значение поля target.
- $node->created — дата создания
- $node->modified — дата последней модификации
- $node->index — количество этого узда во всем меню
- $node->parent — true если это предок в меню текущей страницы
CGSimpleSmarty
Доступные функции:
- self_url([$assign]) возвращает текущий URL:
- [$assign] — (опциональный) переменная в которую вернуть результат.
- module_installed($modulename[,$assign]) проверь наличие модуля по имени:
- $modulename — название модуля для проверки
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
{if $cgsimple->module_installed('FrontEndUsers')}Found FEU{/if}
- module_version($modulename[,$assign]) получить версию установленного модуля:
- $modulename — The name of the module to check
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
{$cgsimple->module_version('FrontEndUsers','feu_version')}We have Version {$feu_version} of FrontEndUsers
- get_parent_alias([$alias],[$assign]) получить псевдоним предка. Пустой, если предка нет:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The parent page alias is {$cgsimple->get_parent_alias()}
- get_root_alias([$alias][,$assign]) получить псевдоним корневой страницы:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The root parent page alias is {$cgsimple->get_root_alias()}
- get_page_title([$alias][,$assign]) получить заголовок страницы:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The title of the current page is {$cgsimple->get_page_title()}
- get_page_menutext([$alias][,$assign]) получить текст меню для страницы:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The menutext of the current page is {$cgsimple->get_page_menutext()}
- get_page_type([$alias][,$assign]) получить тип содержания выбранного объекта по псевдониму:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The type of the current page is {$cgsimple->get_page_type()}
- has_children([$alias][,$assign]) проверить, имеет ли страница дочерние элементы:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
{$cgsimple->has_children('','has_children')}{if $has_children}The current page has children{else}The current page has no children{/if}
- get_children([$alias][,$showinactive][,$assign]) получить массив дочерних элементов:
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
- [$showinactive] — (опциональный) получить также не активные элементы.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Поля:
- alias — псевдоним
- id — идентификатор
- title — заголовок
- menutext — текст меню
- show_in_menu — показан ли в меню
- type — тип содержимого
Пример:
{$cgsimple->get_children('',0,'children')} {if count($children)} {foreach from=$children item='child'} {if $child.show_in_menu} Child: id = {$child.id} alias = {$child.alias}<br/> {/if} {/foreach} {/if}
- get_page_content($alias[,$block][,$assign]) получить текст блока указанной страницы:
- $alias — псевдоним страницы.
- [$block] — (опциональный) Название блока контента. По умолчанию возвращает содержимое — content_en.
- [$assign] — (опциональный) переменная в которую вернуть результат.
Пример:
The 'second' block of the 'about' page is {$cgsimple->get_page_content('about','second','foo')}{eval var=$foo}
- get_sibling($direction[,$assign][,$alias]) получить братский элемент страницы:
- $direction — направление поиска. Возможные варианты: prev, previous, -1, next, 1
- [$assign] — (опциональный) переменная в которую вернуть результат.
- [$alias] — (опциональный) псевдоним страницы. Текущая страница, если пустой.
Пример:
Link to previous sibling: {$cgsimple->get_sibling("prev","prev_sibling")}{if !empty($prev_sibling)}{cms_selflink page="$prev_sibling" text="Previous"}{/if}
Метки:справочник, OpenSource, PHP
Похожие статьи
- 5 апреля 2010 -- Получаем список доменов первого уровня из Wikipedia (5)
- 28 мая 2010 -- Включаем debug для chatroulette. (3)
19 февраля, 2011 at 1:38
Отличная статья об отличной системе! Спасибо! Ушло в закладки
9 мая, 2012 at 10:31
Познавательная статья,спасибо.Если бы её CMSMS русифицировать,как джумлу ,то она её бы обскакала быстро(имхо).Я начал создавать сайт protonik.ru именно с этой cms абсолютно не зная сайтостроения.Очень простая в освоении.Спасибо Теду и помощникам.
10 июля, 2013 at 23:52
Ушло в закладки, четко все расписил