Редактор структуры
Блоки элементов
Блоки элементов применяются в тех случаях, когда требуется сгруппировать несколько элементов страницы. Каждый веб-сайт на Nemo CMS может иметь несколько блоков. Для редактирования списка блоков сайта используется раздел «Управление сайтом» → «Nemo CMS» → «Блоки элементов».
Чтобы создать новый блок, нажмите ссылку «Создать блок элементов страницы».
Настройки блока элементов
- Заголовок — заголовок блока.
- Описание — описание блока.
- Шаблон — шаблон, который будет применен к списку элементов, входящих в блок при выводе блока.
- Включено — включить или выключить блок.
Шаблон блока элементов
Блок элементов отвечает за вывод HTML-потока каждого из элементов макета страницы во фронт-энд. Для этого применяется шаблон, в ключевые места которого блок может разместить HTML-поток своих элементов.
Для этого используются функция {cms_render_element id=ID элемента}
.
Пример шаблона блока элементов, который выведет содержимое всех элементов, обернутое в тег
{foreach from=$elements item=element} <p>{cms_render_element id=$element.id}</p> {/foreach}
Переменные и выражения, доступные в шаблонах блока элементов
Переменная | Значение |
---|---|
{$parent} | Доступ к переменным доступных из шаблона <a href="/doku.php?id=settings:cms:structure_editor:template" class="wikilink1" title="settings:cms:structure_editor:template">макета страницы</a> |
{$global} | Доступ к переменным доступных из шаблона <a href="/doku.php?id=settings:cms:structure_editor:template" class="wikilink1" title="settings:cms:structure_editor:template">макета страницы</a> (аналог “parent”) |
{$page} | Настройки <a href="/doku.php?id=settings:cms:structure_editor:template" class="wikilink1" title="settings:cms:structure_editor:template">макета страницы</a> |
{$data} | Данные контента полученные элементом для вывода во <a href="/doku.php?id=glossary:frontend" class="wikilink1" title="glossary:frontend">фронт-энд</a>. |
{foreach from=$data item=field key=key}{$key}={$field}<br>{/foreach} | Вывод всех полей данных контента и их значений |
Настройки текущего блока | |
{$id} | ID блока |
{$block_title} | Заголовок блока |
{$block_description} | Описание блока |
{$block_template} | <a href="/doku.php?id=settings:cms:structure_editor:template" class="wikilink1" title="settings:cms:structure_editor:template">Шаблон</a> блока |
{$date_create} | Дата создания блока |
{$elements_count} | Количество <a href="/doku.php?id=settings:cms:structure_editor:element" class="wikilink1" title="settings:cms:structure_editor:element">элементов</a> в блоке |
{$template_title} | Заголовок <a href="/doku.php?id=settings:cms:structure_editor:template" class="wikilink1" title="settings:cms:structure_editor:template">шаблона блока</a> |
{$elements} | Массив настроек <a href="/doku.php?id=settings:cms:structure_editor:element" class="wikilink1" title="settings:cms:structure_editor:element">элементов</a> текущего блока |
Например, для новостей доступны следующие переменные:
- id=Array
- entity_id=Array
- news_title=Array
- news_anounce=Array
- news_content=Array
- date_create=Array
- date_modify=Array
- is_deleted=Array
- enabled=Array
- is_scheduled=Array
- schedule_from=Array
- schedule_to=Array
- image_small=Array
- image_large=Array
- image_mode=Array
- is_rss=Array
- sequence=Array
- site_id=Array
- module_name=Array
Элементы макета страницы
Элемент макета страницы в общем случае выполняет функции по выбору контента, введенному пользователем CMS (см. Редактор контента), удовлетворяющему настройкам элемента и формированию выходного HTML-потока с применением шаблона для подстановки его в место, указанное в макете страницы. Для группировки HTML-потоков, формируемых элементами с применением шаблона, используются блоки элементов. Для этого в настройках элемента следует указать, к какому блоку он относится.
Настройки элемента макета страниц
- Заголовок — заголовок элемента.
- Описание — описание элемента.
- Информационный блок — блок, в котором будет отображаться элемент.
- Пользовательское имя объекта — имя объекта, по которому можно будет обратиться к нему из шаблона страницы. Если имя задано, то в процессе наследования элементов макета страниц элементы с одинаковыми именами будут заменяться, а не добавляться к ранее существующим.
- Режим создания объекта — данный параметр влияет на поведение объекта при наследовании элементов макета страниц. Если указано «Наследовать далее», то данный элемент будет наследоваться, иначе он будет создан только при формировании HTML-потока во фронт-энде только на основе текущего макета.
- Экземпляр модуля — экземпляр модуля, из которого будет выбираться контент для вывода текущим элементом.
- Язык элемента — если выбрать какой-либо язык, то данный элемент будет отображаться только в случае, если язык системы совпадет с текущим.
- Задействовать расписание — если выбран данный пункт, то элемент будет отображаться только в указанный интервал дат.
- Включено — включить или выключить элемент.
Элемент создается в 2 этапа. После того, как вы нажмете кнопку «Создать», элемент перейдет в режим настройки дополнительных параметров, о чем будет выдано соответствующее предупреждение.
Появятся дополнительные поля:
- Режим отображения содержимого — это список различных вариантов выборки контента, доступных для выбранного экземпляра модуля. После изменения данного параметра в форме автоматически появятся поля данных, специфические для текущего режима отображения.
Внимание! Элемент, созданный на основе режима отображения «Внедренный объект системы» экземпляра модуля «Системные функции», не будет наследоваться между макетами страниц и должен быть создан непосредственно на макете страницы, для которого планируется его использование, т.к. он является специальным маркером, идентифицирующим макет страницы как пригодный для интеграции построенного на его основе контента с системными функциями Nemo.Travel.
- Шаблон — шаблон, который будет применен к контенту;
- Фильтр — дополнительные фильтры, с помощью которых можно управлять видимостью элемента специфичным для определенного фильтра образом.
Шаблон элемента модуля
Этот элемент страницы отвечает за подготовку данных для вывода во фронт-энд и применения к ним шаблона. Данные, которые передаются в шаблон, зависят от полей «Экземпляр модуля» и «Режим отображения содержимого».
Пример шаблона модуля «Новости» для режима «Определенная новость»
<h1>{$data.news_title}</h1> <p>{$data.news_content}</p>
Переменные и выражения доступные в шаблонах элементов
Заголовок | Значение |
---|---|
{$parent} | Доступ к переменным, доступным из шаблона макета страницы или блока элементов (в зависимости от того, из какого шаблона был вызван {cms_render_element id=$element.id}) |
{$global} | Доступ к переменным, доступным из шаблона макета страницы, в случае, если элемент был вызван из шаблона блока |
{$page} | Настройки макета страницы |
Настройки элемента | |
{$id} | ID элемента |
{$element_name} | Пользовательское имя объекта |
{$element_title} | Заголовок элемента |
{$element_description} | Описание элемента |
{$element_template} | Шаблон элемента |
{$date_create} | Дата создания |
{$template_title} | Заголовок шаблона |
Макеты страниц
Макет страницы — это некая сущность, определяющая, какие данные будут отображаться на странице фронт-энда, построенной на основе данного макета. Он также задает HTML-верстку для размещения этих данных путем назначения шаблона каждому макету страницы. Для редактирования макетов страниц используется раздел «Управление сайтом» → «Nemo CMS» → «Макеты страниц».
Для указания того, какие данные стоит выводить во фронт-энде, каждый макет страницы имеет связанный набор элементов. Макеты страниц имеют иерархическую структуру, что дает возможность администратору сформировать логическую структуру сайта, а также позволяет реализовать механизм наследования элементов по пути. Свойства макета страницы изображены на рисунке.
Настройки макета страницы
- Заголовок — заголовок макета страницы.
- Описание — описание макета страницы.
- Родитель — владелец страницы в иерархической структуре, используется для наследования элементов макетов страниц.
- Шаблон — шаблон HTML с версткой данного макета страницы.
- Режим создания элементов страницы — при формировании выходного потока во фронт-энд на основе макета страницы сперва загружаются элементы всех макетов, начиная с корневого и до текущего, кроме тех, у которых данный параметр установлен в значение «Не наследовать далее», и лишь после этого — элементы текущего макета.
- Включено — включить или выключить макет страницы.
При нажатии на заголовок макета в структуре отображается список элементов данного макета.
Шаблоны макетов страниц
Макет страницы отвечает за формирование выходного HTML-потока во фронт-энд. Для этого применяется шаблон, в ключевые места которого макет страницы может разместить HTML-поток какого-либо элемента страницы и/или блока элементов.
Для этого используются функции {cms_render_block id=ID блока}
и {cms_render_element id=ID элемента}
.
Пример шаблона макета страницы
<table width="100%" > <tr> <td colspan="3">{cms_render_block id=1}</td> </tr> <tr> <td>{cms_render_element id=1}</td> <td>{cms_render_element id=2}</td> <td>{cms_render_element id=3}</td> </tr> <tr> <td colspan="3">{cms_render_block id=2}</td> </tr> </table>
http://sitedomain/index.php?go=content&page=ID[¶m1=&...¶mN=]где ID — идентификатор макета страницы, который должен быть отображен (если он не задан, то используется значение по умолчанию (см. п. Настройки сайта)) , sitedomain – домен, который задан в настройках агентства.
Переменные и выражения, доступные в шаблонах макета страницы
Имя переменной | Значение |
---|---|
{$site} | Настройки сайта |
{$page} | Настройки макета страницы |
{$title} | Заголовок макета страницы |
{$page_path} | Массив настроек макетов страниц от корневого до текущего |
{$elements} | Массив настроек элементов текущей страницы с учетом наследования |
{$blocks} | Массив настроек блоков элементов сайта |
{foreach from=$data item=field key=key}{$key}={$field}<br>{/foreach} | Вывод элементов массива (в шаблоне макета страницы для вывода всех полей настроек соответствующего объекта вместо “data” могут применяться “site”, “page”) |
Настройки сайта | |
{$site.site_title} | Заголовок сайта |
Настройки макета страницы | |
{$page.page_title} | Заголовок шаблона страницы |
{$page.page_description} | Описание шаблона страницы |
{$page.date_create} | Дата создания |
{$page.elements_count} | Количество элементов |
{$page.page_template} | Шаблон |
{$page.template_title} | Заголовок шаблона |
Шаблоны
Шаблон – это текст формате HTML с мета-вставками, соответствующими синтаксису движка шаблонов Smarty и указывающими места, в которые будут подставляться поля данных контента и/или каких либо других объектов. Каждый сайт, построенный с помощью Nemo CMS, имеет связанный с ним список шаблонов.
Редактирование списка шаблонов сайта доступно из раздела «Управление сайтом» → «Nemo CMS» → «Шаблоны».
Для создания нового шаблона нажмите на ссылку «Создать шаблон».
Настройки шаблона
- Файл шаблона — физическое имя файла, в котором сохраняется шаблон.
- Заголовок шаблона — понятный для пользователя текстовый заголовок шаблона, который будет использоваться при выводе списков шаблонов для блоков, элементов и макетов страниц.
- Шаблон — HTML-верстка шаблона.
- Использовать WYSIWYG редактор — переключение редактора шаблона с ввода текста на работу с визуальным редактором (иногда это необходимо, т.к. визуальные редакторы могут менять верстку и обрезать теги и их атрибуты самостоятельно, что не всегда требуется).
Файлы шаблонов
Говоря о шаблонах, отдельно стоит остановиться на таком параметре как «Файл шаблона». Имена шаблонов могут быть любыми, но для того, чтобы они могли быть использованы в качестве шаблонов элементов, блоков и макетов страниц, они должны соответствовать определенному формату. Для упрощения задачи формирования корректного, с точки зрения системы, имени файла рекомендуется использовать конструктор. Для того, чтобы начать работу с конструктором имени файла шаблона нажмите на ссылку «Конструктор» у соответствующего поля.
Если необходимо создать шаблон для блока элементов, то нужно выполнить следующие действия:
- В поле Применяемость выбрать пункт «Блок».
- В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.
После того, как вы выполнили эти действия, в поле имени файла будет сформировано корректное имя файла шаблона, который можно будет использовать с блоками элементов.
Внимание! Для имен файлов шаблонов используйте только латиницу, а также не используйте знаки препинания, пунктуации и символ пробела.
Для создания шаблона для макета страницы используется аналогичная методика:
- В поле Применяемость выбрать пункт «Страница».
- В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.
Как видно на рисунках, в зависимости от применяемости шаблона к имени добавляется префикс «block» или «page» для блока и макета страницы соответственно.
В случае с шаблонами элементов макета страницы появляются дополнительные параметры:
- В поле Применяемость выбрать пункт «Страница».
- В поле Модуль выбрать модуль, для которого будет использован данный шаблон.
- В поле Формат выбрать тип данных, который будет представлять шаблон.
- В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.