Контент: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(См. также)
Строка 42: Строка 42:
  
 
Как правило, остальные модули CMS имеют схожую структуру и поведение и не требуют отдельного описания.
 
Как правило, остальные модули 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}.
  
 
== См. также ==
 
== См. также ==

Версия 22:05, 23 февраля 2012

Контент - информационное содержание ресурса: тексты, изображения, видеоролики, музыка, реклама.

Редактор контента CMS

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

Например:

  • Специальные предложения - специальные предложения туристических агентств по перелетам;
  • Вопросы-ответы - список часто задаваемых вопросов и ответов;
  • Опросы - список опросов с вариантами ответов, а также возможностью протоколирования ответов пользователей;
  • Баннеры - рекламная система для размещения баннеров в графическом, текстовом и SWF-форматах, а также протоколирование просмотров и переходов;
  • Новости - новостная лента;
  • Тексты - текстовые статьи;
  • Комментарии - комментирование контента сайта.

В общем случае на сайте может располагаться несколько модулей одного типа (допустим, 2 ленты новостей). В таком случае копии модулей называются «Экземпляр модуля». Данный термин используется для обобщенного обозначения группировки контента, а также для связи контента со структурой сайта, поскольку в определенных модулях его экземпляры могут называться иначе, что не меняет их смысла (например, для модуля «Баннеры» экземпляр модуля называется «Рекламная кампания»).

Каждый модуль имеет свой собственный редактор контента, а также набор предопределенных режимов отображения для вывода контента модуля во фронт-энде.

Ввод контента

Как правило, ввод контента состоит из следующих этапов:

1. Выбор необходимого модуля - этот выбор делается на основании набора данных, которые должны быть представлены в контенте и того, насколько они совпадают с возможностью модуля. Вполне допускается нецелевое использование модулей (так, например, модуль «Новости» может быть использован в качестве списка частных объявлений).
2. Создание экземпляра модуля.
3. Переход в режим редактирования экземпляра модуля и наполнение его контентом.

Процесс наполнения контентом на примере модуля «Новости»

1. Выберите в меню раздел «Управление контентом-Модули-Новости».
2. В правой части экрана откроется список экземпляров модуля «Новости». Введите «Latest news» в поле «Заголовок» и отметьте поле «Включено».
3. Нажмите кнопку «Создать». После этого экземпляр модуля будет создан и появится в списке.
4. Для наполнения экземпляра модуля контентом нажмите на «Latest news» в колонке «Категория новостей». После этого откроется редактор модуля «Новости».
5. В верхней части редактора находится выпадающее меню «Сменить категорию» для быстрого перехода к редактированию другого экземпляра модуля «Новости»;
6. Ниже располагается строка навигации, показывающая путь к текущему разделу и служащая для возврата на предыдущий уровень; 7. «Создать новость» - при нажатии на данную ссылку откроется форма ввода контента новости;
8. Далее выводится список существующих новостей;
9. Под списком отображаются ссылки переключения между страницами списка.

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

Как правило, остальные модули CMS имеют схожую структуру и поведение и не требуют отдельного описания.

Использование модуля CMS "Страницы контента"

Данный модуль системы Nemo предназначен для организации древовидной структуры страниц с элементами контента. Конечный дизайн каждой страницы определяется задаваемым пользователем макетом страницы и опциональным шаблоном, который может переопределять шаблон по умолчанию, установленный для выбранного макета.

Структура модуля схожа со структурой раздела Макеты страницы, каждая из страниц контента имеет набор специфических полей данных, ссылку на используемый макет и список связанных с данной страницей элементов контента. При визуализации страницы в браузере результирующий список элементов контента формируется из элементов текущей страницы контента и элементов используемого макета страницы.

Алгоритм применения:

1. Создать макет страницы, который будет использован для отображения страниц контента.

2. Добавить в него общие для всех страницы элементы (например панель быстрого доступа, статьи, ленту новостей и т.д.), которые будут отображаться независимо то текущей страницы контента.

3. Создать набор страниц контента: Модули → Страницы контента → Создать набор. При этом задать следующие параметры:

  • Заголовок - понятное для пользователя название экземпляра модуля.
  • По-умолчанию - это поле выставляется в случае, если данный набор должен использован и системе не указано, какой набор использовать для вывода страниц.

4. Добавить страницы в набор. Для этого нажать на заголовок набора в поле «Набор страниц» списка, далее: «Создать страницу».

Описание полей

полеописаниепеременная для шаблона
Алиас страницытекстовая строка для идентификации страницы, если она не задана, то страницу можно вызывать только по ее IDpage_link
Заголовокзаголовок страницы для использования в менюpage_title
Подсказкаальтернативная строка, которая может использоваться, допустим, как хинт в том же самом меню или для каких-либо других целей, определяемых в шаблонеpage_hint
Описаниеальтернативный текст описывающий страницу, используется по желанию, описывается в шаблонеpage_description
Родительродительская страница в набореparent_id
Тип страницытип ссылки выводимой в меню на основе текущего набораurl_type

Типы страницы

1. Страница контента - ссылка на текущую страницу контента.

2. Ссылка на внешний URL - ссылка на произвольный URL.

3. Ссылка на внутреннюю страницу - ссылка на макет страницы сайта, также задается поле «Страница сайта».

URL или набор параметров поле в котором вводится URL или набор параметров добавляемый к ссылке page_url
Макет страницымакет который будет использован для вывода контента (см. п. 1)page_id
Шаблонопциональный шаблон страницы, который используется для вывода контента. Если он не задан, то берется шаблон из указанного макетаpage_template
Заголовок страницы в браузереесли поле не задано, то в TITLE выводится заголовок cтраницыpage_meta_title
Ключевые словаMETA данные Keywordspage_meta_keywords
АннотацияMETA данные Abstractpage_meta_abstract
ОписаниеMETA данные Descriptionpage_meta_description
По-умолчаниюданная страница выводится, если ID выводимой страницы не задан
ВключеноВкл/выкл страницы

5. Наполнить созданную страницу элементами контента по аналогии с макетами.

! В отличие от макетов, элементы родительских страниц не наследуются.

6. Добавить элемент вывода меню и/или пути страницы набора в макет по аналогии с п.2.

! Режим отображения следует установить в «Структура меню» или «Путь к странице» экземпляра модуля из. п.3.

7. задать переменную «Переменная с активным элементом», в которой будет передаваться id или alias текущей страницы. Если элемент используется для вывода именно контентных страниц, то переменная должна быть «page».

URL раздела сайта для отображения фронтенда страниц контента следующий:

index.php?go=frontend[&structure=ID][&page=ID]
  • structure - ID набора страниц, которые нужно вывести
  • page - ID страницы которую нужно вывести

! Переменные structure и page опциональны. Если они не заданы, то используются значения по умолчанию.

Вывод контентных страниц совместно с элементами системы бронирования

Для вывода на одной странице функционала системы бронирования и произвольного контента, а также для возможности использования одного и того же функционала системы бронирования в разных контентных страницах необходимо использовать URL определенного вида.

Для вывода, к примеру, статьи по ее ID совместно с формой поиска можно использовать URL:

http://domain.com/search__index&source=frontend&page=home&text=264

или

http://domain.com/?go=search/index&source=frontend&page=home&text=264

где:

  • search/index - имя контроллера и действия системы бронирования (форма поиска авиабилетов);
  • source=frontend - переменная, указывающая на то, что необходимо использовать функционал модуля контентных страниц;
  • page=home - алиас контентной страницы (можно также указать ее ID, например page=123);
  • text=264 - дополнительный параметр, по которому выведется нужная статья в элементе вывода контента.

Если на контентной странице или в макете будет предварительно создан элемент «Системные функции» в режиме отображения «Внедренный объект системы», то функционал движка выведется в этом элементе.

! На одной контентной странице невозможно разместить несколько экземпляров движка бронирования (например, поисковую форму отелей и авиа).

Добавлено: 1. Алиасы для древовидного меню; 2. Определение текущего элемента по alias`у (если элемент не найден, то будет произведен поиск по id) для древовидного меню; 3. Определение текущего элемента по alias`у (если элемент не найден, то будет произведен поиск по id) для контентных страниц.

Подсветка активных пунктов древовидного меню по алиасам страниц

Активный пункт может также определяться на основании алиаса страницы, если он привязан к данной странице.

Т.е. при переходе на hello.html котороая равна ?go=frontend&page=hello система подсвечивала текущее местоположение.

Чтобы формировать ссылки на страницы или пункты меню с учетом алиаса необходимо использовать атрибут aid вмечто id.

Пример ссылки для шаблона module.menu.structure.tpl

<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>

Тут {$item.id} поменялся на {$item.aid}.

См. также

Веб-сайт
Фронт-энд
Модуль
Система управления порталом (ЦМС)