Редактор структуры

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску

Блоки элементов

Блоки элементов применяются в тех случаях, когда требуется сгруппировать несколько элементов страницы. Каждый веб-сайт на 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>
Внимание! URL для доступа к фронт-энду из браузера имеет следующий формат:
http://sitedomain/index.php?go=content&page=ID[&param1=&...&paramN=]
где 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 редактор — переключение редактора шаблона с ввода текста на работу с визуальным редактором (иногда это необходимо, т.к. визуальные редакторы могут менять верстку и обрезать теги и их атрибуты самостоятельно, что не всегда требуется).

Файлы шаблонов

Говоря о шаблонах, отдельно стоит остановиться на таком параметре как «Файл шаблона». Имена шаблонов могут быть любыми, но для того, чтобы они могли быть использованы в качестве шаблонов элементов, блоков и макетов страниц, они должны соответствовать определенному формату. Для упрощения задачи формирования корректного, с точки зрения системы, имени файла рекомендуется использовать конструктор. Для того, чтобы начать работу с конструктором имени файла шаблона нажмите на ссылку «Конструктор» у соответствующего поля.

Если необходимо создать шаблон для блока элементов, то нужно выполнить следующие действия:

  1. В поле Применяемость выбрать пункт «Блок».
  2. В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.

После того, как вы выполнили эти действия, в поле имени файла будет сформировано корректное имя файла шаблона, который можно будет использовать с блоками элементов.

Внимание! Для имен файлов шаблонов используйте только латиницу, а также не используйте знаки препинания, пунктуации и символ пробела.

Для создания шаблона для макета страницы используется аналогичная методика:

  1. В поле Применяемость выбрать пункт «Страница».
  2. В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.

Как видно на рисунках, в зависимости от применяемости шаблона к имени добавляется префикс «block» или «page» для блока и макета страницы соответственно.

В случае с шаблонами элементов макета страницы появляются дополнительные параметры:

  • В поле Применяемость выбрать пункт «Страница».
  • В поле Модуль выбрать модуль, для которого будет использован данный шаблон.
  • В поле Формат выбрать тип данных, который будет представлять шаблон.
  • В поле Суффикс ввести уникальную строку, идентифицирующую ваш шаблон.

См. также