Изменения

Перейти к навигации Перейти к поиску

Контент

12 939 байт добавлено, 22:05, 23 февраля 2012
См. также
Как правило, остальные модули CMS имеют схожую структуру и поведение и не требуют отдельного описания.
 
== Использование модуля CMS "Страницы контента" ==
 
Данный модуль системы Nemo предназначен для организации древовидной структуры страниц с элементами контента. Конечный дизайн каждой страницы определяется задаваемым пользователем макетом страницы и опциональным шаблоном, который может переопределять шаблон по умолчанию, установленный для выбранного макета.
 
Структура модуля схожа со структурой раздела '''Макеты страницы''', каждая из страниц контента имеет набор специфических полей данных, ссылку на используемый макет и список связанных с данной страницей элементов контента. При визуализации страницы в браузере результирующий список элементов контента формируется из элементов текущей страницы контента и элементов используемого макета страницы.
 
'''Алгоритм применения:'''
 
1. Создать макет страницы, который будет использован для отображения страниц контента.
 
2. Добавить в него общие для всех страницы элементы (например панель быстрого доступа, статьи, ленту новостей и т.д.), которые будут отображаться независимо то текущей страницы контента.
 
3. Создать набор страниц контента: '''Модули → Страницы контента → Создать набор'''. При этом задать следующие параметры:
 
*Заголовок - понятное для пользователя название экземпляра модуля.
*По-умолчанию - это поле выставляется в случае, если данный набор должен использован и системе не указано, какой набор использовать для вывода страниц.
 
4. Добавить страницы в набор. Для этого нажать на заголовок набора в поле '''«Набор страниц»''' списка, далее: '''«Создать страницу».
 
'''Описание полей'''
<table border="1">
<tr bgcolor="#cccccc">
<th class="col0">поле</th><th class="col1">описание</th><th class="col2">переменная для шаблона</th>
</tr>
<tr class="row1">
<td class="col0">Алиас страницы</td><td class="col1">текстовая строка для идентификации страницы, если она не задана, то страницу можно вызывать только по ее ID</td><td class="col2">page_link</td>
 
</tr>
<tr class="row2">
<td class="col0">Заголовок</td><td class="col1">заголовок страницы для использования в меню</td><td class="col2">page_title</td>
</tr>
<tr class="row3">
<td class="col0">Подсказка</td><td class="col1">альтернативная строка, которая может использоваться, допустим, как хинт в том же самом меню или для каких-либо других целей, определяемых в шаблоне</td><td class="col2">page_hint</td>
 
</tr>
<tr class="row4">
<td class="col0">Описание</td><td class="col1">альтернативный текст описывающий страницу, используется по желанию, описывается в шаблоне</td><td class="col2">page_description</td>
</tr>
<tr class="row5">
<td class="col0">Родитель</td><td class="col1">родительская страница в наборе</td><td class="col2">parent_id</td>
 
</tr>
<tr class="row6">
<td class="col0">Тип страницы</td><td class="col1">тип ссылки выводимой в меню на основе текущего набора</td><td class="col2">url_type</td>
</tr>
</table>
 
'''Типы страницы'''
 
1. Страница контента - ссылка на текущую страницу контента.
 
2. Ссылка на внешний URL - ссылка на произвольный URL.
 
3. Ссылка на внутреннюю страницу - ссылка на макет страницы сайта, также задается поле «Страница сайта».
 
<table border="1">
<tr>
<td class="col0">URL или набор параметров </td><td class="col1">поле в котором вводится URL или набор параметров добавляемый к ссылке </td><td class="col2">page_url</td>
</tr>
 
<tr class="row1">
<td class="col0">Макет страницы</td><td class="col1">макет который будет использован для вывода контента (см. п. 1)</td><td class="col2">page_id</td>
</tr>
<tr class="row2">
<td class="col0">Шаблон</td><td class="col1">опциональный шаблон страницы, который используется для вывода контента. Если он не задан, то берется шаблон из указанного макета</td><td class="col2">page_template</td>
</tr>
 
<tr class="row3">
<td class="col0">Заголовок страницы в браузере</td><td class="col1">если поле не задано, то в TITLE выводится заголовок cтраницы</td><td class="col2">page_meta_title</td>
</tr>
<tr class="row4">
<td class="col0">Ключевые слова</td><td class="col1">META данные Keywords</td><td class="col2">page_meta_keywords</td>
</tr>
 
<tr class="row5">
<td class="col0">Аннотация</td><td class="col1">META данные Abstract</td><td class="col2">page_meta_abstract</td>
</tr>
<tr class="row6">
<td class="col0">Описание</td><td class="col1">META данные Description</td><td class="col2">page_meta_description</td>
</tr>
 
<tr class="row7">
<td class="col0">По-умолчанию</td><td class="col1">данная страница выводится, если ID выводимой страницы не задан</td><td class="col2"> </td>
</tr>
<tr class="row8">
<td class="col0">Включено</td><td class="col1">Вкл/выкл страницы</td><td class="col2"> </td>
</tr>
 
</table>
 
5. Наполнить созданную страницу элементами контента по аналогии с макетами.
 
<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> В отличие от макетов, элементы родительских страниц не наследуются.
 
6. Добавить элемент вывода меню и/или пути страницы набора в макет по аналогии с п.2.
 
<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> Режим отображения следует установить в «Структура меню» или «Путь к странице» экземпляра модуля из. п.3.
 
7. задать переменную «Переменная с активным элементом», в которой будет передаваться id или alias текущей страницы. Если элемент используется для вывода именно контентных страниц, то переменная должна быть «page».
 
URL раздела сайта для отображения фронтенда страниц контента следующий:
 
<pre>index.php?go=frontend[&structure=ID][&page=ID]</pre>
*structure - ID набора страниц, которые нужно вывести
*page - ID страницы которую нужно вывести
 
<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> Переменные structure и page опциональны. Если они не заданы, то используются значения по умолчанию.
 
'''Вывод контентных страниц совместно с элементами системы бронирования'''
 
Для вывода на одной странице функционала системы бронирования и произвольного контента, а также для возможности использования одного и того же функционала системы бронирования в разных контентных страницах необходимо использовать URL определенного вида.
 
Для вывода, к примеру, статьи по ее ID совместно с формой поиска можно использовать URL:
 
<pre>http://domain.com/search__index&source=frontend&page=home&text=264</pre>
 
или
 
<pre>http://domain.com/?go=search/index&source=frontend&page=home&text=264</pre>
 
где:
*search/index - имя контроллера и действия системы бронирования (форма поиска авиабилетов);
*source=frontend - переменная, указывающая на то, что необходимо использовать функционал модуля контентных страниц;
*page=home - алиас контентной страницы (можно также указать ее ID, например page=123);
*text=264 - дополнительный параметр, по которому выведется нужная статья в элементе вывода контента.
 
Если на контентной странице или в макете будет предварительно создан элемент «Системные функции» в режиме отображения «Внедренный объект системы», то функционал движка выведется в этом элементе.
 
<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> На одной контентной странице невозможно разместить несколько экземпляров движка бронирования (например, поисковую форму отелей и авиа).
 
''Добавлено: 1. Алиасы для древовидного меню; 2. Определение текущего элемента по alias`у (если элемент не найден, то будет произведен поиск по id) для древовидного меню; 3. Определение текущего элемента по alias`у (если элемент не найден, то будет произведен поиск по id) для контентных страниц.''
 
== Подсветка активных пунктов древовидного меню по алиасам страниц ==
 
Активный пункт может также определяться на основании алиаса страницы, если он привязан к данной странице.
 
Т.е. при переходе на hello.html котороая равна ?go=frontend&page=hello система подсвечивала текущее местоположение.
 
Чтобы формировать ссылки на страницы или пункты меню с учетом алиаса необходимо использовать атрибут aid вмечто id.
 
Пример ссылки для шаблона module.menu.structure.tpl
 
<pre><a href="{if $item.url_type==2}/index.php?go=content&page={$item.page_id}{if $activeVariable}&{$activeVariable}={$item.aid}{/if}{if $item.item_url}&{$item.item_url}{/if}{else}{$item.item_url}{/if}" {if $item.item_hint} title="{$item.item_hint}"{/if}>{$item.item_title}</a></pre>
 
Тут {$item.id} поменялся на {$item.aid}.
== См. также ==

Навигация

'