NodusReviews

Расширение для Нодуса. Предназначено для построения механизмов отзывов. Компонент добавляет новый тип данных "Reviews" с дополнительной обёрткой для приёма и обработки отзывов.

Документация

Читать

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

Настройка

Настройка компонента проводится через 2 файла конфигурации:

  • config/fields-reviews.php
  • config/component.php

где, настройки для component.php:

  • url - URL, который будет отдавать страницу со списком всех отзывов всех сущностей и форма добавления нового отзыва. По умолчанию url включен (/reviews/). Если страница со списком всех отзывов не нужна, необходимо значение настройки выставить в false.
  • url_redirect - URL редиректа после приема данных (если не ajax отправка).
  • from_taxonomy - включение/выключение таксономии для плагина (не забываем чистить кеш).
  • item_datatype - мнемокод для типа и селектора по нему.
  • item_taxonomy - мнемокод таксономии.
  • redefinition_template - использовать переопределение шаблона для фильтра.
  • send_admin_mail - отправлять уведомления администраторам.
  • admin_mail_list - список адресов для уведомления.
  • admin_mail_from - адрес, с которого отправляются уведомления.
  • admin_mail_theme - тема письма уведомления.

Файл fields-reviews.php содержит список полей (fields), используемых для отображения формы пользователю. В базе все отзывы хранятся в итемах нодуса, имена полей которых должны совпадать с полями в форме добавления вопроса. При добавлении они должны попадать как в форму добавления вопроса, так и в итем нодуса. Для упрощения данного действия в конфигурационном файле каждому полю можно задать массив nodus, который передаётся в список полей итема нодуса.

// app/components/NodusReviews/config.php

return array(
	'filter' => array(
		'type' => 'hidden',
	),
	'name' => array(
		'caption' => 'Представьтесь',
		'nodus' => array(
			'caption' => 'Имя посетителя',
			'sqltype' => 'varchar(255)',
			'tab' => 'default',
			'weight' => 200,
		),
		'col' => 1,
	...
);

Кроме того есть опция col, при использовании которой поля формы группируются по div-блокам с css-классом col{key}, где {key} - это значение одноименной опции в конфигурационных настройках (fields-reviews.php). Разбивать можно на любое количество блоков. Если для какого-то поля не была задана настройка, то она будет автоматически определена как 0.

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

Шаблоны компонента

Т.к. это плагин нодуса, то тут применимы его законы. То есть, представление единичной записи всегда лежит в папке конкретного типа данных (в одной папке с файлом Type.php). Шаблон отображения списка записей соответствует шаблону селектора, помещать их следует в папку нодуса /nodus/views/app, исключением является шаблон selector-page-bottom, его положение изменено и перенесено в папку шаблонов компонента. Назначение остальных шаблонов в папке /NodusReviews/views/ соответствует их названию:

  • reviews_insertion.phtml - шаблон списка вопросов, отображаемых через механизм вставок;
  • form_error.phtml - список ошибок, выявленных после заполнения формы посетителем (на стороне сервера), отображается перед формой;
  • form_ok.phtml - текст, замещающий форму после асинхронной отправки сообщения;
  • form.phtml - собственно сама форма для добавления вопроса посетителем;
  • selector-page-bottom.phtml - шаблон нодуса, отображаемый после списка записей, в него вставляется форма добавления отзыва.

Для шаблона form.phtml используются скрипты и шаблоны из папок /NodusReviews/scripts/ и /NodusReviews/styles/ соответственно. Переопределение в соответствии со структурой компонентов нужно проводить в папках /NodusReviews/app/scripts/ и /NodusReviews/app/styles/ соответственно.

Для большей гибкости в плагине предусмотрена возможность переопределять шаблон form.phtml для конкретного фильтра. В этом случае надо создать копию шаблона, и к старому имени файла через дефис указать имя фильтра (form-пользовательский_фильтр.phtml), при этом в имени фильтра все слеши и точки надо заменить на знак подчёркивания.

Вставка на страницу и использование фильтров

Для вставки списка отзывов или формы отправки отзыва на страницу необходимо воспользоваться соответствующими методами:

<?= Component_NodusReviews::Reviews($item->id)?> //вставка списка
<?= Component_NodusReviews::Reviews_add($item->id)?> //вставка формы добавления отзыва.

Или можно воспользоваться вставкой.

%Reviews{}
%Reviews_Add{}

В компоненте предусмотрен механизм фильтрации отзывов, основанный на словах-фильтрах. Изначально в качестве фильтра выступает URL страницы с формой отзыва.

%Reviews{<?=$item->id?>} // вывод списка и формы добавления отзыва с применением фильтра по id сущности
%Reviews_Add{<?=$item->id?>}

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

Все версии

Обращаем ваше внимание, что установка и обновление компонентов штатным способом осуществляется из системы управления вашим сайтом ("Библиотека компонентов"). Данный раздел несет прежде всего информационную функцию. Однако, вы можете скачивать инсталляционные пакеты компонентов в целях ознакомления или в случае если функционирование библиотеки компонентов по какой-то причине затруднено.


Версия Дата
0.0.7 07.07.2016
0.0.6 23.06.2016
0.0.5 25.12.2015
0.0.4 11.12.2015
0.0.3 11.12.2015
0.0.2 07.12.2015
0.0.1 07.12.2015