Module refers to the part of the CMS "Interactive" and can be installed optionally.
The module "Comments" is connected to the other modules. The standard DIAFAN.CMS "Comments" are connected to the following modules: Photogallery, News, Articles, Question-Answer, Online shop, Files, Site pages, Ads. The comments are connected to a specific module within the module settings.
The user of the site comments are added using Ajax technology, ie without reloading the whole page. Comments containing the words longer than 20 characters are not skipped.
Подключаемая часть – файл modules/comments/comments.inc.php. В нем описан класс
Comments_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_comments
. Экземпляр класса создается при первом вызове
переменной.
string get ([integer $element_id = 0], [string $module_name = ''], [string $element_type = 'element'], [integer $site_id = 0]) – Показывает комментарии, прикрепленные к элементу, и форму добавления комментария.
Example:
// get comments to news and form to add a comment
// in the file modules/news/news.model.php
$comments = $this->diafan->_comments->get();
// выводим комментарии в шаблоне модуля
// in the file modules/news/views/news.view.id.php
echo $comments; `
void element (array &$row, array $params_list, integer $element_id, string $module_name, string $element_type, array $params_form, [boolean $hide_form = false]) – Формирует данные об одном комментарие.
Example:
// get data about comment from db
$row = DB::query_fetch_array("SELECT * FROM {comments} WHWRE id=5");
// get fields for comments in list
$params_list = DB::query_fetch_all("SELECT * FROM {comments_param} WHERE show_in_list='1'");
// get fields for form to add a comment
$params_form = DB::query_fetch_all("SELECT * FROM {comments_param} WHERE show_in_form_auth='1' OR show_in_form_no_auth='1'");
// preapre data about comments for template
// and add form to add a comment
$this->diafan->_comments->element($row, $params_list, $params_form);
array get_param_values (integer $id, array $params) – Получает дополнительные поля комментариев.
Example:
// get fields for comments in list
$params_list = DB::query_fetch_all("SELECT * FROM {comments_param} WHERE show_in_list='1'");
// get values of fields for comment ID=15
$row["params"] = $this->diafan->_comments->get_param_values(15, $params_list);
void prepare_param_values (integer $id) – Запоминает номера комментариев, для которых понядобятся значения доп. полей.
Example:
// in this example, 3 SQL-request to the database
// for getting values of fields for comments
$ids = array(3, 5, 7);
foreach($ids as $id)
{
$params[$id] = $this->diafan->_comments->get_param_values($id, $params_list);
}
Example:
// in this example, 1 SQL-request to the database
// for getting values of fields for comments
$ids = array(3, 5, 7);
foreach($ids as $id)
{
$this->diafan->_comments->prepare($id);
}
foreach($ids as $id)
{
$params[$id] = $this->diafan->_comments->get_param_values($id, $params_list);
}
void delete (integer|array $element_ids, string $module_name, [string $element_type = 'element']) – Удаляет комментарий для одного или нескольких элементов.
Example:
// remove comments to news category ID=3
$this->diafan->_comments->delete(3, 'news', 'cat');
// remove comments to news ID=3,4,5
$this->diafan->_comments->delete(array(3, 4, 5) 'news');
void delete_module (string $module_name) – Удаляет все комментарии модуля.
Example:
// remove comments to all news and news categories
$this->diafan->_comments->delete_module('news');
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
'comments'
:
Example:
public $variables = array(
'main' => array(
'comments' => 'module',
…
),
…
);
The administrative part of the module all the comments collected in one table and displayed in order of receipt. Comments can be sorted by belonging to a particular element. To do this, links are provided "Comments" in the administrative part of the modules, which connect comment. For example, when the link "Comments" photo editing appears in the comments to this picture or message "Comments" in their absence.
When you delete an item, delete all comments attached to it.
Comments have the following characteristics.
Основные:
The number and content of the comment fields may be different. This provides a form builder.
Form builder – a additional fields in the form of comments additing.
Fields have the following characteristics.
Основные:
Example:
New comment on the site %title (%url)Example:
Hello! You have subscribed to comments on the site %title (%url).<br>
On the page there's <a href="%link">
a new comment</a>
:<br>
%message <br><br>
Can unsubscribe <a href="%actlink">
link</a>
.
Example:
%title (%url). New commentExample:
Hello, admin of %title (%url)!<br>
On page <a href="%urlpage">
%urlpage</a>
appeared new comment:<br>
%message.
Для работы с модулем «Comments» служат следующие шаблонные теги:
show_block – shows latest comments.
Атрибуты:
— count – number of displayed comments (by default 3);
— modules – модули (разделенные запятой), к которым подключены комментарии;
— element_id – идентификаторы элементов модулей (разделенные запятой), к которым подключены комментарии;
— element_type – type of elements (element – element (by default), cat – category);
— sort – sorting comments: date – by date (by default), rand – randomly;
— 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/comments/views/comments.view.show_block_template.php; default - file modules/comments/views/comments.view.show_block.php).
Example:
<insert name="show_block" module="comments" modules="shop" count="2">
выведет 2 последних комментария к товарам
В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"]
.
{comments} – Comments
{comments_mail} – Подписка пользователей на новые комментарии
{comments_param} – Дополнительные поля комментариев
{comments_param_element} – Значения дополнительных полей комментариев
{comments_param_select} – Варианты значения дополнительных полей комментариев с типом список
{comments_parents} – Parents relations of comments
modules/comments/admin/comments.admin.php – Editing comments;
modules/comments/admin/comments.admin.config.php – Module settings;
modules/comments/admin/comments.admin.count.php – Количество непроверенных коммментариев, если подключено модерирование комментариев, для меню административной панели;
modules/comments/admin/comments.admin.dashboard.php – Комментарии для событий;
modules/comments/admin/comments.admin.inc.php – Connecting the module to the administrative part of other modules;
modules/comments/admin/comments.admin.param.php – Конструктор комментариев;
modules/comments/admin/js/comments.admin.inc.config.js – Поле "Комментарии", JS-сценарий;
modules/comments/admin/js/comments.admin.param.js – Конструктор комментариев, JS-сценарий;
modules/comments/comments.php – Controller;
modules/comments/comments.action.php – Обработка запроса при добавления комментария;
modules/comments/comments.inc.php – Подключение модуля;
modules/comments/comments.install.php – Module installation;
modules/comments/comments.model.php – Model;
modules/comments/comments.rss.php – RSS comments feed;
modules/comments/js/comments.get.js – JS-сценарий модуля;
modules/comments/views/comments.view.form.php – Шаблон формы добавления комментария;
modules/comments/views/comments.view.get.php – Шаблон вывода комментариев;
modules/comments/views/comments.view.id.php – Шаблон одного комментария;
modules/comments/views/comments.view.images.php – Шаблон прикрепленных к комментарию изображения, выводимых в форме добавления комментария;
modules/comments/views/comments.view.list.php – Шаблон списка комментариев;
modules/comments/views/comments.view.rows_block.php – Шаблон блока комментариев;
modules/comments/views/comments.view.show_block.php – Template of comments block;
modules/comments/views/comments.view.show_block_main.php – Template of comments block.