Tags

Module refers to the part of the CMS "Content" and can be installed optionally.

Module "Tags" is connected to the other modules. The standard DIAFAN.CMS "Tags" are connected to the following modules: Photogallery, News, Articles, Question-Answer, Online shop, Files, Ads. Enable tags in the framework of the module is configured in a particular module settings.

Connection

Подключаемая часть – файл 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: element ID, к котором прикреплены теги, по умолчанию текущий элемент модуля
  • strint $module_name: название модуля, по умолчанию модуль, прикрепленный к текущей странице сайта
  • string $element_type: тип данных
  • integer $site_id: страница сайта, к которой прикреплен элемент, по умолчанию текущая страница сайта

Example:

// get article tags in the file modules/clauses/clauses.model.php
$tags = $this->diafan->_tags->get($id, 'clauses');
// output tags in the module template modules/clauses/clauses.view.php
echo $tags;

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

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

Example:

// in this example, it will send the following 3 SQL-requests to the database to obtain the specified tags to all articles
$ids = array(3, 5, 7);
foreach(
$ids as $id)
{
    
$tags[$id] = $this->diafan->_tags->get($id, 'clauses');
}

Example:

// in this example, it will send the following 1 SQL-request to the database to obtain the specified tags to all articles
$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: тип данных

Example:

// delete tags attached to article ID=3
$this->diafan->_tags->delete(3, 'clauses');

// delete tags attached to articles ID=3,4,5
$this->diafan->_tags->delete(array(3, 4, 5) 'clauses');

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

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

Example:

// delete tags attached to all articles
$this->diafan->_tags->delete_module('clauses');

How to add tags to the module

In the file of module settings (modules/модуль/admin/модуль.admin.config.php) and in the file of editing elements of the module (modules/модуль/admin/модуль.admin.php) you must add the parameter 'tags':

Example:

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

    
),
    

);

Tag page of tags on the site lists the elements of other modules to which the tag is attached. These elements of the module are made the same as the elements in the list of this module. For this the data is processed by function elements() from the model module modules/module_name/module_name.model.php and output by template modules/module_name/views/module_name.view.list.php.

You can specify a list of data processing elements attached to the tag. For this you need to define function tags() th the file modules/module_name/module_name.model.php.

Example:

Since the processing of data on the tag attached to the product goes through function tags() in the file modules/shop/shop.model.php.

A data processing on the tag attached to the news is through function elements() in the file modules/news/news.model.php, since the function tags() in this file is not described.

The template can be also used other than the default template. To do this, create file modules/module_name/views/module_name.view.list_tags.php.

Example:

Products are made in the tag page template modules/shop/views/shop.view.list_tags.php.

News are also documented as in the news list template modules/news/views/news.view.list.php.

The above features only apply to the elements of modules (news, products, articles and so forth.). Site pages are displayed included as a standard template modules/tags/views/tags.view.list.php.

Administrative part

List of tags

The administrative part of the module brings together all the tags in a single table, but when editing a particular element of the module, which are connected to the tags, you can edit tags to it. Tags can be sorted by belonging to a particular element.

When you delete an item removes all tags attached to it.

Edit of tag

Tags have the following characteristics.

Settings

Settings

Template tags

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

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

Атрибуты:

defer – deferred load tag template tag: event – load content only at the request of the user when you click "Upload", emergence – load content only when the client window appears in the browser window, async – asynchronous (simultaneous) content loading together with the content of template tags with the same marker, sync – synchronous (sequential) load of content in conjunction with the content of template tags with the same marker, by default, downloading content only at the request of the user;

defer_title – text string displayed at the point where the loadable content appears with the help of delayed loading of the template tag;

template – tag template (file modules/tags/views/tags.view.show_block_template.php; default - file modules/tags/views/tags.view.show_block.php).

Example:

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

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

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

Database

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

{tags_name} – Tags

Files

The module is located in the folder 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 – Module settings;

  6. modules/tags/admin/tags.admin.inc.php – Connecting the module to the administrative part of other modules;

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

  8. modules/tags/tags.php – Controller;

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

  10. modules/tags/tags.install.php – Module installation;

  11. modules/tags/tags.model.php – Model;

  12. modules/tags/tags.sitemap.php – Map of links for "Site map" module;

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

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

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

  16. modules/tags/views/tags.view.rows_block.php – Шаблон облака тегов;

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