Картинка блога

Меню в 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}

Метки:, ,

3 комментария в “CMS Made Simple создание и работа с меню”

  1. Отличная статья об отличной системе! Спасибо! Ушло в закладки

  2. Познавательная статья,спасибо.Если бы её CMSMS русифицировать,как джумлу ,то она её бы обскакала быстро(имхо).Я начал создавать сайт protonik.ru именно с этой cms абсолютно не зная сайтостроения.Очень простая в освоении.Спасибо Теду и помощникам.

  3. Ушло в закладки, четко все расписил