Наверх

Теги

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

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

Подключение

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

Методы

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

  • integer $element_id: номер элемента, к котором прикреплены теги, по умолчанию текущий элемент модуля
  • strint $module_name: название модуля, по умолчанию модуль, прикрепленный к текущей странице сайта
  • string $element_type: тип данных
  • integer $site_id: страница сайта, к которой прикреплен элемент, по умолчанию текущая страница сайта

Пример:

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

void prepare ([integer $element_id = 0], [strint $module_name = ''], [string $element_type = 'element']) – Запоминает данные элемента, которому нужно будет вывести теги.

  • integer $element_id: номер элемента, к котором прикреплены теги, по умолчанию текущий элемент модуля
  • strint $module_name: название модуля, по умолчанию модуль, прикрепленный к текущей странице сайта
  • string $element_type: тип данных

Пример:

// в этом примере будет выполенено три SQL-запроса к базе данных для получения тегов ко всем заданным статьям
$ids = array(3, 5, 7);
foreach(
$ids as $id)
{
    
$tags[$id] = $this->diafan->_tags->get($id, 'clauses');
}

Пример:

// в этом примере будет выполен один SQL-запрос к базе данных для получения тегов ко всем заданным статьям
$ids = array(3, 5, 7);
foreach(
$ids as $id)
{
    
$this->diafan->_tags->prepare($id, 'clauses');
}
foreach(
$ids as $id)
{
    
$tags[$id] = $this->diafan->_tags->get($id, 'clauses');
}

void delete (integer|array $element_ids, strint $module_name, [string $element_type = 'element']) – Удаляет теги для одного или нескольких элементов.

  • integer|array $element_ids: номер одного или нескольких элементов
  • strint $module_name: название модуля
  • string $element_type: тип данных

Пример:

// удалит теги, прикрепленные к статьи ID=3
$this->diafan->_tags->delete(3, 'clauses');

// удалит теги, прикрепленные к статьям ID=3,4,5
$this->diafan->_tags->delete(array(3, 4, 5) 'clauses');

void delete_module (string $module_name) – Удаляет все теги модуля.

  • string $module_name: название модуля

Пример:

// удалит теги, прикрепленные ко всем статьям
$this->diafan->_tags->delete_module('clauses');

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

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

Пример:

public $variables = array(
    
'main' => array(
        
'tags' => 'module',
        

    
),
    

);

Страница тега в пользовательской части выводит список элементов других модулей, к которым тег подключен. Данные об элементах модуля оформляются так же, как в списке элементов этого модуля. Для этого данные обрабатываются функцией elements() из модели модуля modules/модуль/модуль.model.php и выводятся шаблоном modules/модуль/views/модуль.view.list.php.

Можно задать свою обработку данных для списка элементов, прикрепленных к тегу. Для этого нужно определить функцию tags() в файле modules/модуль/модуль.model.php.

Пример:

Так обработка данных о прикрепленных к тегу товарах идет через функцию tags() в файле modules/shop/shop.model.php.

А обработка данных о прикрепленных к тегу новостях идет через функцию elements() в файле modules/news/news.model.php, так как функцию tags() в этом файле не описана.

Шаблон также можно применить отличный от шаблона по умолчанию. Для этого достаточно создать файл modules/модуль/views/модуль.view.list_tags.php.

Пример:

Товары оформляются на странице тега шаблоном modules/shop/views/shop.view.list_tags.php.

А новости оформляются также, как в списке новостей шаблоном modules/news/views/news.view.list.php.

Описанные выше особенности относятся только к элементам модулей (новости, товары, статьи и пр.). Страницы сайта выводятся стандатным шаблоном modules/tags/views/tags.view.list.php.

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

Список тегов

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

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

Редактирование тега

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

Основные:

  • Название – Параметр имеет разные значения для разных языковых версий сайта.
  • Псевдоссылка – ЧПУ (человеко-понятные урл url), адрес страницы вида: http://site.ru/psewdossylka/. Смотрите параметры сайта.
  • Редирект на текущую страницу со страницы – Позволяет делать редирект с указанной страницы на текущую.
  • Изображения – Назначить тегу изображение.
  • Описание – Параметр имеет разные значения для разных языковых версий сайта.

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

  • Время последнего изменения – Изменяется после сохранения элемента. Отдается в заголовке Last Modify.
  • Параметры SEO.
  • Заголовок окна в браузере, тег Title – Если не заполнен, тег Title будет автоматически сформирован как «Названия тега – Название страницы – Название сайта» (SEO-специалисту). Параметр имеет разные значения для разных языковых версий сайта.
  • Ключевые слова, тег Keywords – Параметр имеет разные значения для разных языковых версий сайта.
  • Описание, тег Description – Параметр имеет разные значения для разных языковых версий сайта.
  • Не индексировать – Запрет индексации текущей страницы, если отметить, у страницы выведется тег: <meta name="robots" content="noindex"> (SEO-специалисту).
  • Changefreq – Вероятная частота изменения этой страницы. Это значение используется для генерирования файла sitemap.xml. Подробнее читайте в описании XML-формата файла Sitemap (SEO-специалисту).
  • Priority – Приоритетность URL относительно других URL на Вашем сайте. Это значение используется для генерирования файла sitemap.xml. Подробнее читайте в описании XML-формата файла Sitemap (SEO-специалисту).
  • Сортировка: установить перед – Редактирование порядка отображения пункта.
  • Индексирование для карты сайта – Тег автоматически индексируется для карты сайта sitemap.xml.
  • Не показывать на карте сайта – Скрывает отображение ссылки на новость в файле sitemap.xml и модуле «Карта сайта».

Настройки

Настройки

  • Количество элементов на странице – Количество одновременно выводимых новостей, товаров, фотографий и др., помеченных тегом в списке.
  • Использовать изображения – Если отмечена, к тегам можно будет будет добавлять изображения.
  • Генерировать размеры изображений – Размеры изображений, заданные в модуле «Изображения».
  • Отображение изображений в списке – Параметр принимает значения:
    • нет (отключает отображение изображений в списке);
    • показывать одно изображение;
    • показывать все изображения. Параметр выводится, если отмечена опция «Использовать изображения».
  • Использовать анимацию при увеличении изображений – Параметр добавляет JavaScript код, позволяющий включить анимацию при увеличении изображений. Параметр выводится, если отмечена опция «Использовать изображения».
  • Максимальный размер загружаемых файлов – Параметр показывает максимально допустимый размер загружаемых файлов, установленный в настройках хостинга. Параметр выводится, если отмечена опция «Использовать изображения».
  • Применить настройки ко всем ранее загруженным изображениям – Позволяет переконвертировать размер уже загруженных изображений. Кнопка необходима, если изменены настройки размеров изображений. Параметр выводится, если отмечена опция «Использовать изображения».

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

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

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

Атрибуты:

template – шаблон тега (файл modules/tags/views/tags.view.show_block_template.php; по умолчанию шаблон modules/tags/views/tags.view.show_block.php).

Пример:

<insert name="show_block" module="tags">

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

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

База данных

{tags} – Связи тегов и элементов модулей

{tags_name} – Теги

Файлы

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

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

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

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

  4. modules/tags/admin/tags.admin.action.php – обработка POST-запросов при работе с тегами в административной части;

  5. modules/tags/admin/tags.admin.config.php – настройки модуля;

  6. modules/tags/admin/tags.admin.inc.php – подключение модуля к административной части других модулей;

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

  8. modules/tags/tags.php – контроллер;

  9. modules/tags/tags.inc.php – подключение для работы с тегами;

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

  11. modules/tags/tags.model.php – модель;

  12. modules/tags/tags.sitemap.php – карта ссылок для модуля «Карта сайта»;

  13. modules/tags/views/tags.view.get.php – шаблон списка прикрепленных к элементу тегов;

  14. modules/tags/views/tags.view.list.php – шаблон списка элементов, к которым прикреплен тег;

  15. modules/tags/views/tags.view.show_block.php – шаблон облака тегов.

Ваши комментарии и дополнения

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.