Рейтинг
Модуль относится к части CMS «Интерактив» и может быть установлен опционально.
Модуль «Рейтинг» подключается к другим модулям. В стандартной комплектации DIAFAN.CMS «Рейтинг» подключен к следующим модулям: Фотогалерея, Новости, Статьи, Магазин, Файловый архив, Вопрос-Ответ, Объявления. В рамках модуля рейтинг подключается в настройках конкретного модуля.
В пользовательской части сайта голосование проходит с помощью технологии Ajax, то есть без перезагрузки всей страницы.
Подключение
Подключаемая часть – файл modules/rating/rating.inc.php. В нем описан класс
Rating_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_rating
. Экземпляр класса создается при первом вызове
переменной.
Методы
string get ([integer $element_id = 0], [string $module_name = ''], [string $element_type = 'element'], [integer $site_id = 0], [boolean $full = false]) – Показывает рейтинг для элемента.
- integer $element_id: номер элемента модуля, по умолчанию текущий элемент модуля
- string $module_name: название модуля, по умолчанию текущий модуль
- string $element_type: тип данных
- integer $site_id: страница сайта, к которой прикреплен элемент, по умолчанию текущая страница сайта
- boolean $full: полная информация
Пример:
// получаем рейтинг товара
// в файле modules/shop/shop.model.php
$rating = $this->diafan->_rating->get($id, 'shop');
// выводим рейтинг в шаблоне модуля
// в файле modules/shop/views/shop.view.id.php
echo $rating;
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)
{
$rating[$id] = $this->diafan->_rating->get($id, 'shop');
}
Пример:
// в этом примере будет выполен один SQL-запрос к базе данных
// для получения рейтинга всех заданных товаров
$ids = array(3, 5, 7);
foreach($ids as $id)
{
$this->diafan->_rating->prepare($id, 'shop');
}
foreach($ids as $id)
{
$rating[$id] = $this->diafan->_rating->get($id, 'shop');
}
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->_rating->delete(3, 'news', 'cat');
// удалит рейтинг к новостям ID=3,4,5
$this->diafan->_rating->delete(array(3, 4, 5) 'news');
void delete_module (string $module_name) – Удаляет все рейтинги элементов модуля.
- string $module_name: название модуля
Пример:
// удалит рейтинг всех новостей и категорий новостей
$this->diafan->_rating->delete_module('news');
Как добавлять рейтинг к модулю
В настройках модуля (modules/модуль/admin/модуль.admin.config.php) и в файле
редактирования элементов модуля (modules/модуль/admin/модуль.admin.php)
необходимо добавить параметр
'rating'
:
Пример:
public $variables = array(
'main' => array(
'rating' => 'module',
…
),
…
);
Административная часть
В административной части модуля собираются средние оценки за все элементы разных модулей в одну таблицу и отображаются в порядке обновления. Рейтинг отдельного элемента модуля можно посмотреть не посещая раздел «Рейтинг» в административной части, так как средняя оценка и число голосовавших за элемент отображаются при редактировании элемента модуля, к которому подключен рейтинг.
При удалении какого-либо элемента, удаляется оценка этого элемента.
Рейтинг имеет следующие характеристики.
В списке оценок выводятся название и модуль оцениваемого элемента.
Настройки
База данных
{rating} – Рейтинг элементов модулей
Файлы
modules/rating/admin/js/rating.admin.inc.config.js – поле "Рейтинг", JS-сценарий;
modules/rating/admin/rating.admin.php – редактирование рейтигов;
modules/rating/admin/rating.admin.config.php – настройки модуля;
modules/rating/admin/rating.admin.inc.php – подключение модуля к административной части других модулей;
modules/rating/img/* – изображения;
modules/rating/js/rating.get.js – JS-сценарий модуля;
modules/rating/rating.php – контроллер;
modules/rating/rating.action.php – обрабатывает полученные данные из формы;
modules/rating/rating.inc.php – подключение модуля;
modules/rating/rating.install.php – установка модуля;
modules/rating/views/rating.view.get.php – шаблон рейтинга элемента.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.