Теги

Модуль относится к части CMS «Контент» и может быть установлен опционально.

Модуль «Теги» подключается к другим модулям. В стандартной комплектации diafan.CMS «Теги» подключены к следующим модулям: Фотогалерея, Новости, Статьи, Вопрос-Ответ, Магазин, Файловый архив. Включение тегов в рамках модуля настраивается в конфигурации конкретного модуля.

Подключение

Подключаемая часть – файл modules/tags/tags.inc.php. В нем описан класс Tags_inc. В модуле к объекту классам можно обратится через переменную $this->diafan->_tags. Экземпляр класса создается при первом вызове переменной.

Методы

string get([integer $element_id = 0], [string $module_name = '']) – выводит подключенные к элементу тэги.

  • access: public
  • integer $element_id: номер элемента модуля
  • string $module_name: название модуля

Пример

// получаем теги статьи в файле modules/clauses/clauses.model.php
$tags $this->diafan->_tags->get($id'clauses');
// выводим теги в шаблоне модуля в файле modules/clauses/clauses.view.php 
echo $tags;

Как добавлять теги к модулю

В конфигурации модуля (modules/модуль/admin/модуль.admin.config.php) и в файле редактирования элементов модуля (modules/модуль/admin/модуль.admin.php) необходимо добавить параметр  'tags':

$this->variable_table = array('tags' => 'module');

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

Данные о подключаемом элементе генерируются либо функцией tags, либо, если tags не определена, функцией get_elements из модели подключаемого модуля.

Пример

В классе Shop_model файл modules/shop/shop.model.php определена функция tags. Она используется модулем «Теги» для формирование данных о товаре для списка тегов.

А вот для новостей функция tags не определена, поэтому данные о новости, к которой прикреплен тег, формируются с помощью функции get_elements класса News_model из файла modules/news/news.model.php.

Похожая ситуация с шаблонами вывода. Если в шаблоне модуля определена функция list_tags, то используется она, иначе берется стандартная функция вывода списка элементов модуля – list_.

Пример

В классе Photo_view (файл modules/photo/photo.view.php) определена функция list_tags. Это шаблон вывода фотографий для списка элементов, прикрепленных к тегу.

В классе Clauses_view (файл modules/clauses/clauses.view.php) функция list_tags не определена, поэтому используется стандартная функция из этого класса list_.

Административная часть

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

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

При удалении какого-либо элемента, удаляются все теги, прикрепленные к нему.

Теги имеют следующие характеристики.

Основные:

  • Название тега;

  • Псевдоссылка – ссылка на страницу тега будет генерироваться следующим образом: http://www.site.ru/псевдоссылка/. Если псевдоссылка не указана адрес страницы будет: http://www.site.ru/псевдоссылка_страницы/showНомер_тега/. При добавлении псевдоссылки к ней автоматически прикрепляется псевдоссылка страницы. При редактировании можно это исправить.

Дополнительные:

  • Сортировка: установить перед – редактирование порядка отображения пункта;

  • Не показывать на карте сайта – скрывает отображение ссылки на страницу тега в файле sitemap.xml.

Шаблонные теги

Для работы с модулем "Теги" служат следующие шаблонные теги:

show_block – выводит список тегов.

Пример: <insert name="show_block" module="tags">

выведет облако тегов

Оформление облака тегов в функции show_block в файле modules/tags/tags.view.php.

CSS-форматирование

Теги, прикрепленные к элементу:

.tags{} – теги, прикрепленные к элементу

.tags .tags_header{} – заголовок «Теги»

Страница тега:

.tags_list{} – список элементов, к которым прикреплен тег (если не используется шаблон модуля)

.tags_list .tag_name{} – название элемента

.tags_list .tag_text{} – краткий анонс элемента

Шаблонная функция show_block:

.tags_block{} – список всех тегов

.tags_block h2{} – заголовок «Теги»

.tags_block a{} – ссылки на теги

.tags_block span{} – текущий/активный тег

Файлы

Модуль находится в папке /modules/tags/.

  1. modules/tags/tags.inc.php – формирует вывод тегов к элементам модулей;

  2. modules/tags/tags.php – контроллер модуля;

  3. modules/tags/tags.model.php – страница «Теги» выводит элементы модулей, соответствующих тегу;

  4. modules/tags/tags.view.php – шаблон вывода;

  5. modules/tags/tags.sitemap.php – карта сайта модуля для файла sitemap.xml;

  6. modules/tags/tags.install.php – установка модуля;

  7. modules/модуль/модуль.model.php – подключение тегов к модулям;

  8. modules/tags/admin/tags.admin.php – редактирование тегов;

  9. modules/tags/admin/tags.admin.js – редактирование тегов, JS-сценарий;

  10. modules/tags/admin/tags.admin.view.php – шаблон вывода тегов в административной части;

  11. modules/tags/admin/tags.admin.edit.php – вывод тегов в административной части модулей;

  12. modules/tags/admin/tags.admin.save.php – сохранение тегов в административной части модулей;

  13. modules/tags/admin/tags.admin.act.php – активация/блокирование тегов при активации/блокировании элеметнов модулей;

  14. modules/tags/admin/tags.admin.del.php – удаление тегов при удалении элементов модулей;

  15. modules/tags/admin/tags.admin.ajax.php – обработка Ajax-запросов в административной части модуля.



Не понятно? Уточните