Редактор структуры: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Новая страница: «== Блоки элементов == Блоки элементов применяются в тех случаях, когда требуется сгруппиро...»)
 
Строка 1: Строка 1:
 
== Блоки элементов ==
 
== Блоки элементов ==
  
Блоки элементов применяются в тех случаях, когда требуется сгруппировать несколько элементов страницы. Каждый [[веб-сайт]] на Nemo CMS может иметь несколько блоков. Для редактирования списка блоков сайта используется раздел '''«Управление контентом Блоки элементов»'''.
+
Блоки элементов применяются в тех случаях, когда требуется сгруппировать несколько элементов страницы. Каждый [[веб-сайт]] на Nemo CMS может иметь несколько блоков. Для редактирования списка блоков сайта используется раздел «Управление сайтом» «Nemo CMS» → «Блоки элементов».
  
Чтобы создать новый блок, нажмите ссылку '''«Создать блок элементов страницы»'''.  
+
Чтобы создать новый блок, нажмите ссылку «Создать блок элементов страницы».  
  
'''Настройки блока элементов:'''
+
=== Настройки блока элементов ===
  
*Заголовок - заголовок блока;
+
* {{Setting|Заголовок}} — заголовок блока.
*Описание - описание блока;
+
* {{Setting|Описание}} — описание блока.
*Шаблон - шаблон, который будет применен к списку элементов, входящих в блок при выводе блока;
+
* {{Setting|Шаблон}} — шаблон, который будет применен к списку элементов, входящих в блок при выводе блока.
*Включено - включить или выключить блок.
+
* {{Setting|Включено}} — включить или выключить блок.
  
'''Шаблон блока элементов:'''
+
=== Шаблон блока элементов ===
  
 
Блок элементов отвечает за вывод HTML-потока каждого из элементов макета страницы во [[фронт-энд]]. Для этого применяется шаблон, в ключевые места которого блок может разместить HTML-поток своих элементов.
 
Блок элементов отвечает за вывод HTML-потока каждого из элементов макета страницы во [[фронт-энд]]. Для этого применяется шаблон, в ключевые места которого блок может разместить HTML-поток своих элементов.
  
Для этого используются функция '''{cms_render_element id=ID элемента}'''.
+
Для этого используются функция <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">{cms_render_element id=ID элемента}</syntaxhighlight>.
  
'''Пример шаблона блока элементов, который выведет содержимое всех элементов, обернутое в тег &lt;p&gt;:'''
+
==== Пример шаблона блока элементов, который выведет содержимое всех элементов, обернутое в тег <p> ====
  
 
<pre>{foreach from=$elements item=element}
 
<pre>{foreach from=$elements item=element}
Строка 24: Строка 24:
 
{/foreach}</pre>
 
{/foreach}</pre>
  
'''Переменные и выражения, доступные в шаблонах блока элементов:'''
+
==== Переменные и выражения, доступные в шаблонах блока элементов ====
  
 
<table border="1">
 
<table border="1">
Строка 84: Строка 84:
 
Например, для новостей доступны следующие переменные:
 
Например, для новостей доступны следующие переменные:
  
*id=Array
+
* id=Array
*entity_id=Array
+
* entity_id=Array
*news_title=Array
+
* news_title=Array
*news_anounce=Array
+
* news_anounce=Array
*news_content=Array
+
* news_content=Array
*date_create=Array
+
* date_create=Array
*date_modify=Array
+
* date_modify=Array
*is_deleted=Array
+
* is_deleted=Array
*enabled=Array
+
* enabled=Array
*is_scheduled=Array
+
* is_scheduled=Array
*schedule_from=Array
+
* schedule_from=Array
*schedule_to=Array
+
* schedule_to=Array
*image_small=Array
+
* image_small=Array
*image_large=Array
+
* image_large=Array
*image_mode=Array
+
* image_mode=Array
*is_rss=Array
+
* is_rss=Array
*sequence=Array
+
* sequence=Array
*site_id=Array
+
* site_id=Array
*module_name=Array
+
* module_name=Array
  
 
== Элементы макета страницы ==
 
== Элементы макета страницы ==
Строка 108: Строка 108:
 
Элемент макета страницы в общем случае выполняет функции по выбору контента, введенному пользователем CMS (см. [[Редактор контента]]), удовлетворяющему настройкам элемента и формированию выходного HTML-потока с применением шаблона для подстановки его в место, указанное в макете страницы. Для группировки HTML-потоков, формируемых элементами с применением шаблона, используются блоки элементов. Для этого в настройках элемента следует указать, к какому блоку он относится.  
 
Элемент макета страницы в общем случае выполняет функции по выбору контента, введенному пользователем CMS (см. [[Редактор контента]]), удовлетворяющему настройкам элемента и формированию выходного HTML-потока с применением шаблона для подстановки его в место, указанное в макете страницы. Для группировки HTML-потоков, формируемых элементами с применением шаблона, используются блоки элементов. Для этого в настройках элемента следует указать, к какому блоку он относится.  
  
'''Настройки элемента макета страниц:'''
+
=== Настройки элемента макета страниц ===
 +
* {{Setting|Заголовок}} — заголовок элемента.
 +
* {{Setting|Описание}} — описание элемента.
 +
* {{Setting|Информационный блок}} — блок, в котором будет отображаться элемент.
 +
* {{Setting|Пользовательское имя объекта}} — имя объекта, по которому можно будет обратиться к нему из шаблона страницы. Если имя задано, то в процессе наследования элементов макета страниц элементы с одинаковыми именами будут заменяться, а не добавляться к ранее существующим.
 +
* {{Setting|Режим создания объекта}} — данный параметр влияет на поведение объекта при наследовании элементов макета страниц. Если указано «Наследовать далее», то данный элемент будет наследоваться, иначе он будет создан только при формировании HTML-потока во фронт-энде только на основе текущего макета.
 +
* {{Setting|Экземпляр модуля}} — экземпляр модуля, из которого будет выбираться контент для вывода текущим элементом.
 +
* {{Setting|Язык элемента}} — если выбрать какой-либо язык, то данный элемент будет отображаться только в случае, если язык системы совпадет с текущим.
 +
* {{Setting|Задействовать расписание}} — если выбран данный пункт, то элемент будет отображаться только в указанный интервал дат.
 +
* {{Setting|Включено}} — включить или выключить элемент.
  
*Заголовок - заголовок элемента;
+
Элемент создается в 2 этапа. После того, как вы нажмете кнопку «Создать», элемент перейдет в режим настройки дополнительных параметров, о чем будет выдано соответствующее предупреждение.
*Описание - описание элемента;
 
*Информационный блок - блок, в котором будет отображаться элемент;
 
*Пользовательское имя объекта - имя объекта, по которому можно будет обратиться к нему из шаблона страницы. Если имя задано, то в процессе наследования элементов макета страниц элементы с одинаковыми именами будут заменяться, а не добавляться к ранее существующим;
 
*Режим создания объекта - данный параметр влияет на поведение объекта при наследовании элементов макета страниц. Если указано «Наследовать далее», то данный элемент будет наследоваться, иначе он будет создан только при формировании HTML-потока во фронт-энде только на основе текущего макета;
 
*Экземпляр модуля - экземпляр модуля, из которого будет выбираться контент для вывода текущим элементом;
 
*Язык элемента - если выбрать какой-либо язык, то данный элемент будет отображаться только в случае, если язык системы совпадет с текущим;
 
*Задействовать расписание - если выбран данный пункт, то элемент будет отображаться только в указанный интервал дат;
 
*Включено - включить или выключить элемент.
 
 
 
Элемент создается в 2 этапа. После того, как вы нажмете кнопку '''«Создать»''', элемент перейдет в режим настройки дополнительных параметров, о чем будет выдано соответствующее предупреждение.
 
  
 
Появятся дополнительные поля:
 
Появятся дополнительные поля:
  
'''Режим отображения содержимого''' - это список различных вариантов выборки контента, доступных для выбранного экземпляра модуля. После изменения данного параметра в форме автоматически появятся поля данных, специфические для текущего режима отображения.
+
* {{Setting|Режим отображения содержимого}} — это список различных вариантов выборки контента, доступных для выбранного экземпляра модуля. После изменения данного параметра в форме автоматически появятся поля данных, специфические для текущего режима отображения.
  
<span style="background-color: rgb(255, 240, 245)"><span style="font-size: large"><span style="color: rgb(255, 0, 0)">!</span></span> Элемент, созданный на основе режима отображения «Внедренный объект системы» экземпляра модуля «Системные функции», не будет наследоваться между макетами страниц и должен быть создан непосредственно на макете страницы, для которого он планируется использоваться, т.к. он является специальным маркером, идентифицирующим макет страницы как пригодный для интеграции построенного на его основе контента с системными функциями Nemo.
+
{{Attention|Элемент, созданный на основе режима отображения «Внедренный объект системы» экземпляра модуля «Системные функции», не будет наследоваться между макетами страниц и должен быть создан непосредственно на макете страницы, для которого он планируется использоваться, т.к. он является специальным маркером, идентифицирующим макет страницы как пригодный для интеграции построенного на его основе контента с системными функциями {{NameSystem}}.}}
'''
 
Шаблон''' - шаблон, который будет применен к контенту;
 
  
'''Фильтр''' - дополнительные фильтры, с помощью которых можно управлять видимостью элемента специфичным для определенного фильтра образом.
+
* {{Setting|Шаблон}} — шаблон, который будет применен к контенту;
 +
* {{Setting|Фильтр}} — дополнительные фильтры, с помощью которых можно управлять видимостью элемента специфичным для определенного фильтра образом.
  
'''Шаблон элемента модуля:'''
+
=== Шаблон элемента модуля ===
  
 
Этот элемент страницы отвечает за подготовку данных для вывода во фронт-энд и применения к ним шаблона. Данные, которые передаются в шаблон, зависят от полей «Экземпляр модуля» и «Режим отображения содержимого».
 
Этот элемент страницы отвечает за подготовку данных для вывода во фронт-энд и применения к ним шаблона. Данные, которые передаются в шаблон, зависят от полей «Экземпляр модуля» и «Режим отображения содержимого».
  
'''Пример шаблона модуля «Новости» для режима «Определенная новость»:'''
+
==== Пример шаблона модуля «Новости» для режима «Определенная новость» ====
  
 
<pre><h1>{$data.news_title}</h1>
 
<pre><h1>{$data.news_title}</h1>
 
<p>{$data.news_content}</p></pre>
 
<p>{$data.news_content}</p></pre>
  
'''Переменные и выражения доступные в шаблонах элементов:'''
+
==== Переменные и выражения доступные в шаблонах элементов ====
  
 
<table border="1">
 
<table border="1">
Строка 190: Строка 188:
 
== Макеты страниц ==
 
== Макеты страниц ==
  
Макет страницы - это некая сущность, определяющая, какие данные будут отображаться на странице фронт-энда, построенной на основе данного макета. Он также задает HTML-верстку для размещения этих данных путем назначения шаблона каждому макету страницы. Для редактирования макетов страниц используется раздел '''«Управление контентом - Макеты страниц»'''.
+
Макет страницы это некая сущность, определяющая, какие данные будут отображаться на странице фронт-энда, построенной на основе данного макета. Он также задает HTML-верстку для размещения этих данных путем назначения шаблона каждому макету страницы. Для редактирования макетов страниц используется раздел «Управление сайтом» → «Nemo CMS» → «Макеты страниц».
  
 
Для указания того, какие данные стоит выводить во фронт-энде, каждый макет страницы имеет связанный набор элементов. Макеты страниц имеют иерархическую структуру, что дает возможность администратору сформировать логическую структуру сайта, а также позволяет реализовать механизм наследования элементов по пути. Свойства макета страницы изображены на рисунке.
 
Для указания того, какие данные стоит выводить во фронт-энде, каждый макет страницы имеет связанный набор элементов. Макеты страниц имеют иерархическую структуру, что дает возможность администратору сформировать логическую структуру сайта, а также позволяет реализовать механизм наследования элементов по пути. Свойства макета страницы изображены на рисунке.
  
'''Настройки макета страницы:'''
+
=== Настройки макета страницы ===
*Заголовок - заголовок макета страницы;
+
* {{Setting|Заголовок}} — заголовок макета страницы.
*Описание - описание макета страницы;
+
* {{Setting|Описание}} — описание макета страницы.
*Родитель - владелец страницы в иерархической структуре, используется для наследования элементов макетов страниц;
+
* {{Setting|Родитель}} — владелец страницы в иерархической структуре, используется для наследования элементов макетов страниц.
*Шаблон - шаблон HTML с версткой данного макета страницы;
+
* {{Setting|Шаблон}} — шаблон HTML с версткой данного макета страницы.
*Режим создания элементов страницы - при формировании выходного потока во фронт-энд на основе макета страницы сперва загружаются элементы всех макетов, начиная с корневого и до текущего, кроме тех, у которых данный параметр установлен в значение «Не наследовать далее», и лишь после этого - элементы текущего макета.
+
* {{Setting|Режим создания элементов страницы}} — при формировании выходного потока во фронт-энд на основе макета страницы сперва загружаются элементы всех макетов, начиная с корневого и до текущего, кроме тех, у которых данный параметр установлен в значение «Не наследовать далее», и лишь после этого элементы текущего макета.
*Включено - включить или выключить макет страницы.
+
* {{Setting|Включено}} — включить или выключить макет страницы.
  
 
При нажатии на заголовок макета в структуре, отображается список элементов данного макета.
 
При нажатии на заголовок макета в структуре, отображается список элементов данного макета.
  
'''Шаблоны макетов страниц'''
+
=== Шаблоны макетов страниц ===
  
 
Макет страницы отвечает за формирование выходного HTML-потока во [[фронт-энд]]. Для этого применяется шаблон, в ключевые места которого макет страницы может разместить HTML-поток какого-либо элемента страницы и/или блока элементов.
 
Макет страницы отвечает за формирование выходного HTML-потока во [[фронт-энд]]. Для этого применяется шаблон, в ключевые места которого макет страницы может разместить HTML-поток какого-либо элемента страницы и/или блока элементов.
  
Для этого используются функции '''{cms_render_block id=ID блока}''' и '''{cms_render_element id=ID элемента}'''.
+
Для этого используются функции <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">{cms_render_block id=ID блока}</syntaxhighlight> и <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">{cms_render_element id=ID элемента}</syntaxhighlight>.
  
'''Пример шаблона макета страницы:'''
+
==== Пример шаблона макета страницы ====
  
 
<pre><table width="100%" >
 
<pre><table width="100%" >
Строка 226: Строка 224:
 
</table></pre>
 
</table></pre>
  
<span style="background-color: rgb(255, 240, 245)"><span style="font-size: large"><span style="color: rgb(255, 0, 0)">!</span></span> URL для доступа к фронт-энду из браузера имеет следующий формат:
+
{{AttentionBox|URL для доступа к фронт-энду из браузера имеет следующий формат:
  
 
<pre>http://sitedomain/index.php?go=content&page=ID[&param1=&...&paramN=]</pre>
 
<pre>http://sitedomain/index.php?go=content&page=ID[&param1=&...&paramN=]</pre>
  
где ID- id макета страницы, который должен быть отображен (если он не задан, то используется значение по умолчанию (см. п. [[Настройки]] сайта)) , sitedomain – домен, который задан в настройках агентства.  
+
где ID — идентификатор макета страницы, который должен быть отображен (если он не задан, то используется значение по умолчанию (см. п. [[Настройки]] сайта)) , sitedomain – домен, который задан в настройках агентства.}}
  
'''Переменные и выражения, доступные в шаблонах макета страницы:'''
+
==== Переменные и выражения, доступные в шаблонах макета страницы ====
  
 
<table border="1">
 
<table border="1">
Строка 301: Строка 299:
 
Шаблон – это текст формате HTML с мета-вставками, соответствующими синтаксису движка шаблонов Smarty и указывающими места, в которые будут подставляться поля данных контента и/или каких либо других объектов. Каждый сайт, построенный с помощью Nemo CMS, имеет связанный с ним список шаблонов.
 
Шаблон – это текст формате HTML с мета-вставками, соответствующими синтаксису движка шаблонов Smarty и указывающими места, в которые будут подставляться поля данных контента и/или каких либо других объектов. Каждый сайт, построенный с помощью Nemo CMS, имеет связанный с ним список шаблонов.
  
Редактирование списка шаблонов сайта доступно из раздела '''«Управление контентом - Шаблоны»'''.
+
Редактирование списка шаблонов сайта доступно из раздела «Управление сайтом» → «Nemo CMS» → «Шаблоны».
  
Для создания нового шаблона нажмите на ссылку '''«Создать шаблон»'''.
+
Для создания нового шаблона нажмите на ссылку «Создать шаблон».
  
'''Настройки шаблона:'''
+
=== Настройки шаблона ===
  
*'''Файл шаблона''' - физическое имя файла, в котором сохраняется шаблон;
+
* {{Setting|Файл шаблона}} — физическое имя файла, в котором сохраняется шаблон.
*'''Заголовок шаблона''' - понятный для пользователя текстовый заголовок шаблона, который будет использоваться при выводе списков шаблонов для блоков, элементов и макетов страниц;
+
* {{Setting|Заголовок шаблона}} — понятный для пользователя текстовый заголовок шаблона, который будет использоваться при выводе списков шаблонов для блоков, элементов и макетов страниц.
*'''Шаблон''' - HTML-верстка шаблона;
+
* {{Setting|Шаблон}} — HTML-верстка шаблона.
*'''Использовать WYSIWYG редактор''' - переключение редактора шаблона с ввода текста на работу с визуальным редактором (иногда это необходимо, т.к. визуальные редакторы могут менять верстку и обрезать теги и их атрибуты самостоятельно, что не всегда требуется).
+
* {{Setting|Использовать WYSIWYG редактор}} — переключение редактора шаблона с ввода текста на работу с визуальным редактором (иногда это необходимо, т.к. визуальные редакторы могут менять верстку и обрезать теги и их атрибуты самостоятельно, что не всегда требуется).
  
'''Файлы шаблонов'''
+
=== Файлы шаблонов ===
  
 
Говоря о шаблонах, отдельно стоит остановиться на таком параметре как «Файл шаблона». Имена шаблонов могут быть любыми, но для того, чтобы они могли быть использованы в качестве шаблонов элементов, блоков и макетов страниц, они должны соответствовать определенному формату. Для упрощения задачи формирования корректного, с точки зрения системы, имени файла рекомендуется использовать конструктор. Для того, чтобы начать работу с конструктором имени файла шаблона нажмите на ссылку «Конструктор» у соответствующего поля.
 
Говоря о шаблонах, отдельно стоит остановиться на таком параметре как «Файл шаблона». Имена шаблонов могут быть любыми, но для того, чтобы они могли быть использованы в качестве шаблонов элементов, блоков и макетов страниц, они должны соответствовать определенному формату. Для упрощения задачи формирования корректного, с точки зрения системы, имени файла рекомендуется использовать конструктор. Для того, чтобы начать работу с конструктором имени файла шаблона нажмите на ссылку «Конструктор» у соответствующего поля.
Строка 318: Строка 316:
 
Если необходимо создать шаблон для блока элементов, то нужно выполнить следующие действия:
 
Если необходимо создать шаблон для блока элементов, то нужно выполнить следующие действия:
  
1. В поле «Применяемость» выбрать пункт «Блок»;<br>
+
# В поле {{Setting|Применяемость}} выбрать пункт «Блок».
2. В поле «Суффикс» ввести уникальную строку, идентифицирующую ваш шаблон.
+
# В поле {{Setting|Суффикс}} ввести уникальную строку, идентифицирующую ваш шаблон.
  
 
После того, как вы выполнили эти действия, в поле имени файла будет сформировано корректное имя файла шаблона, который можно будет использовать с блоками элементов.
 
После того, как вы выполнили эти действия, в поле имени файла будет сформировано корректное имя файла шаблона, который можно будет использовать с блоками элементов.
  
<span style="background-color: rgb(255, 240, 245)"><span style="font-size: large"><span style="color: rgb(255, 0, 0)">!</span></span> Для имен файлов шаблонов используйте только латиницу, а также не используйте знаки препинания, пунктуации и символ пробела.
+
{{Attention|Для имен файлов шаблонов используйте только латиницу, а также не используйте знаки препинания, пунктуации и символ пробела.}}
  
 
Для создания шаблона для макета страницы используется аналогичная методика:
 
Для создания шаблона для макета страницы используется аналогичная методика:
  
1. В поле «Применяемость» выбрать пункт «Страница»;<br>
+
# В поле {{Setting|Применяемость}} выбрать пункт «Страница».
2. В поле «Суффикс» ввести уникальную строку, идентифицирующую ваш шаблон.
+
# В поле {{Setting|Суффикс}} ввести уникальную строку, идентифицирующую ваш шаблон.
  
 
Как видно на рисунках, в зависимости от применяемости шаблона к имени добавляется префикс «block» или «page» для блока и макета страницы соответственно.
 
Как видно на рисунках, в зависимости от применяемости шаблона к имени добавляется префикс «block» или «page» для блока и макета страницы соответственно.
  
 
В случае с шаблонами элементов макета страницы появляются дополнительные параметры:
 
В случае с шаблонами элементов макета страницы появляются дополнительные параметры:
*В поле «Применяемость» выбрать пункт «Страница»;
+
* В поле {{Setting|Применяемость}} выбрать пункт «Страница».
*В поле «Модуль» выбрать модуль, для которого будет использован данный шаблон;
+
* В поле {{Setting|Модуль}} выбрать модуль, для которого будет использован данный шаблон.
*В поле «Формат» выбрать тип данных, который будет представлять шаблон;
+
* В поле {{Setting|Формат}} выбрать тип данных, который будет представлять шаблон.
*В поле «Суффикс» ввести уникальную строку, идентифицирующую ваш шаблон.
+
* В поле {{Setting|Суффикс}} ввести уникальную строку, идентифицирующую ваш шаблон.
  
 
== См. также ==
 
== См. также ==
[[Система управления порталом (ЦМС)]]<br>
+
* [[Система управления порталом (ЦМС)]]
[[Контент]]<br>
+
* [[Контент]]
[[Фронт-энд]]
+
* [[Фронт-энд]]

Версия 22:35, 10 февраля 2016

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

Блоки элементов применяются в тех случаях, когда требуется сгруппировать несколько элементов страницы. Каждый веб-сайт на 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» для блока и макета страницы соответственно.

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

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

См. также