Наверх

Рейтинг

Модуль относится к части 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} – Рейтинг элементов модулей

Файлы

  1. modules/rating/admin/js/rating.admin.inc.config.js – поле "Рейтинг", JS-сценарий;

  2. modules/rating/admin/rating.admin.php – редактирование рейтигов;

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

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

  5. modules/rating/img/* – изображения;

  6. modules/rating/js/rating.get.js – JS-сценарий модуля;

  7. modules/rating/rating.php – контроллер;

  8. modules/rating/rating.action.php – обрабатывает полученные данные из формы;

  9. modules/rating/rating.inc.php – подключение модуля;

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

  11. modules/rating/views/rating.view.get.php – шаблон рейтинга элемента.

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

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