AnythingRating
MODX Docs
Перейти
AnythingRating
MODX Wiki
Перейти

AnythingRating -  сниппет, позволяющий организовать на своем сайте голосование за любую группу ресурсов: статью, фотографию, комментарий и т.д. Легко устанавливается и настраивается. Использует режим AJAX, работает при отключенном JavaScript, есть возможность запретить повторное голосование или проводить голосование только среди зарегистрированных пользователей. Есть возможность подключать собственный языковые файлы.

Особенности

  • Использует AJAX
  • Работает с отключенным JavaScript
  • Вы можете использовать неограниченное количество групп рейтингов
  • Любое количество пунктов для голосования
  • Проверка не только на IP, но также включает в себя проверку Cookie
  • Точность результатов голосования до одной сотой
  • Предварительная загрузка изображений
  • Мультиязычность с возможностью добавлять собственные языковые пакеты
  • Протестирован в IE 6, IE 7, Firefox 2.x, Opera и Safari
  • Группы рейтинга - Определите группу рейтинга только один раз на странице:
    • Выберите количество "звезд" (или любое другое изображение)
    • Определите дату окончания конкурса
    • Определите в шаблоне информацию об оценках: звезды  3.25/5  65 %  (205 голосов)
    • Настройте или измените изображение "звезд" с помощью стилей css
    • Укажите точное число IP-адресов 
    • Разрешите или запретите мультиголосование
    • Голосование только для зарегистрированных пользователей
  • Используйте уникальный идентификатор:
    • Объедините элементы в группы
    • Установите "novote", чтобы запретить пользователям голосовать за этот пункт
    • Калибруйте первую оценку
  • Покажите самые популярные пункты рейтинга:
    • Выберите количество отображаемых пунктов
    • Отобразите лучшие или худшие пункты
    • Определите информацию в таблице рейтинга (название, описание, изображение, ссылка)
    • Покажите несколько различных рейтингов

Установка

1. Скачайте последнюю версию AnythingRating

2. Создайте директорию anythingRating в папке assets/snippets и скопируйте туда файлы файлы из скаченного архива

3. Создайте новый сниппет AnythingRating и поместите в код сниппета содержимое файла assets/snippets/anythingRating/snippet.anythingRating.php

Параметры

Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&define=`1`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&getTopRated=`1`
Формат: Имя языкового файла
Значение по умолчанию: нет
Примечание: Языковые пакеты реализованы не полностью, вы можете добавить собственный языковой файл.
Пример:
&language=`russian-utf8`
Формат: число
Значение по умолчанию: 5
Примечание: AnythingRating.css должен соответствовать этому количеству
Пример:
&nbStars=`3`
Формат: число
Значение по умолчанию: all
Примечание:
Пример:
&nbIP=`50`
Формат: YYYY-MM-DD | неограничено
Значение по умолчанию: неограничено
Примечание:
Пример:
&endDate=`2012-12-12`
Формат: список веб-групп пользователей через запятую
Значение по умолчанию: голосование доступно для всех
Примечание: Для голосования веб-пользователю необходимо авторизоваться
Пример:
&canVote=``
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: 0 - допускается только один голос
Пример:
&multiVote=`1`
Формат: путь
Значение по умолчанию: assets/snippets/anythingRating/css/anythingRating.css
Примечание:
Пример:
&atrCss=``
Формат:
Значение по умолчанию: @FILE:assets/snippets/anythingRating/templates/anythingRating.tpl.html
Примечание: @FILE:путь к файлу
Пример:
&atrTpl=``
Формат: Любая комбинация символов AZ, подчеркивания и цифр 0-9
Значение по умолчанию: 0
Примечание:
Пример:
&atrId=`ar1`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&noVotes=`1`
Формат: A numeric value >=1 and <= &nbStars | A data formatted as follow TVname[:DocId]
Значение по умолчанию: 0
Примечание: The content of the TV should contain a rating_value or "rating_value:nb_votes"
Пример:
&init=``
Формат: число
Значение по умолчанию: 5
Примечание:
Пример:
&topNb=`10`
Формат: best | worst
Значение по умолчанию: best
Примечание:
Пример:
&topDir=`worst`
Формат: путь
Значение по умолчанию: @FILE:assets/snippets/anythingRating/templates/topRated.tpl.html
Примечание: @FILE:путь
Пример:
&topTpl=``
Формат:
Значение по умолчанию:
Примечание: Используются поля $_lang['atr_bestlabel'] или $_lang['atr_worstlabel'] из языкового файла
Пример:
&topLabel=``
Формат: Любое существующее имя таблицы без префикса MODx
Значение по умолчанию:
Примечание:
Пример:
&topTable=`site_content`
Формат:
Значение по умолчанию: id
Примечание:
Пример:
&topIdField=``
Формат:
Значение по умолчанию: title
Примечание:
Пример:
&topTitleField=``
Формат: имя поля
Значение по умолчанию: нет
Примечание:
Пример:
&topDescrField=`description`
Формат: имя поля
Значение по умолчанию: нет
Примечание:
Пример:
&topImageField=``
Формат: имя поля
Значение по умолчанию: нет
Примечание:
Пример:
&topLinkField=`alias`

Плейсхолдеры

Список доступных плэсхолдеров, которые можно использовать в шаблонах.

anythingRatingTpl - Шаблон для виджета голосования.

Шаблон по умолчанию находится в файле: assets/snippets/anythingRating/templates/anythingRating.tpl.html
[+atr.scoreSection+] Секция для оценки
[+atr.intro+] Отображение текущего результата голосования
[+atr.rating+] Текущая оценка
[+atr.nbstars+] Количество звезд
[+atr.lbstars+] Лейбл для звезд. Берется из языкового файла $_lang['atr_lbstars']
[+atr.nbvotes+] Число голосов
[+atr.lbvotes+] Лейбл для голосов. Берется из языкового файла  $_lang['atr_lbvotes']
[+atr.msgSection+] Секция для сообщений

topRatedTpl - Шаблон для вывода результатов голосования.

Шаблон по умолчанию находится в файле: assets/snippets/anythingRating/templates/topRated.tpl.html
[+atr.groupid+] Имя группы рейтинга
[+atr.baseurl+] URL сайта
[+atr.ratingid+] Идентификатор предмета рейтинга
[+atr.hdrank+] Лейбл для ранга. Берется из языкового файла $_lang['atr_hdrank']
[+atr.hdscore+] Лейбл для оценок. Берется из языкового файла $_lang['atr_hdscore']
[+atr.hdnbvotes+] Лейбл для количества голосов. Берется из языкового файла $_lang['atr_hdnbvotes']
[+atr.hdtitle+] Лейбл для названия предмета рейтинга. Берется из языкового файла $_lang['atr_hdtitle']
[+atr.hddescr+] Лейбл для описания предмета рейтинга. Параметр topDescrField
[+atr.hdimage+] Лейбл для картинки предмета рейтинга. Параметр topImageField
[+atr.hdlink+] Лейбл для ссылки предмета рейтинга. Параметр topLinkField
[+atr.rank+] Ранг
[+atr.rating+] Текущая оценка
[+atr.nbstars+] Количество звезд
[+atr.lbstars+] Лейбл для звезд. Берется из языкового файла $_lang['atr_lbstars']
[+atr.nbvotes+] Число голосов
[+atr.lbvotes+] Лейбл для голосов. Берется из языкового файла  $_lang['atr_lbvotes']
[+atr.title+] Заголовок
[+atr.descr+] Описание. Параметр topDescrField
[+atr.image+] Картинка. Параметр topImageField
[+atr.link+] Ссылка. Параметр topLinkField

Примеры

Использование

Добавьте первый вызов в начале страницы , для определения группы рейтинга:

[!AnythingRating? &define=`1` &atrGrp=`grpName`!]

где:

  • &define=`1` - указываем, что данный вызов сниппета предназначен для определения группы рейтинга
  • &atrGrp=`grpName` - имя группы рейтинга. Любая комбинация символов AZ, подчеркивания и цифр 0-9

Возле предмета (изображения, статьи и т.д.), к которому добавляем голосование размещаем такой вызов сниппета:

[!AnythingRating? &atrGrp=`grpName` &atrId=`idItem`!]

где:

  • &atrGrp=`grpName` - определяем, к какой группе относится наш рейтинг
  • &atrId=`idItem` - уникальный идентификатор предмета рейтинга. Может быть [*id*] или [+maxigallery.picture.id+] в чанке maxigallery или каким либо другим id.

Для вывода ТОП рейтинга используем следующий вызов сниппета:

[!AnythingRating? &getTopRated=`1` &atrGrp=`grpName` &topTable=`site_content` &topTitleField=`pagetitle`!]

где:

  • &getTopRated=`1` - указываем, что данный вызов предназначен для вывода результатов голосования
  • &atrGrp=`grpName` - определяем группу по которой будем выводить результаты
  • &topTable=`site_content` - указываем имя таблицы, которая содержит данные предметов рейтинга. Имя таблицы указывается без префикса MODx
  • &topTitleField=`pagetitle` - поле, используемое в качестве названия предмета рейтинга

Вы можете настроить внешний вид результатов голосования с помощью CSS в файле css/anythingRating.css. Так же вы можете настроить форму для голосования в шаблоне templates/anythingRating.tpl.html или форму вывода результатов голосования в шаблоне templates/topRated.tpl.html. Смотрите возможные плэйсхолдеры для использования в шаблонах.

Определение рейтинга группы

Это простейший пример вызова определяет рейтинг группы 'photos':

[!AnythingRating? &define=`1` &atrGrp=`photos`!]
  • хранение всех IP-адресов проголосовавших по каждому пункту
  • виджет из 5 звезд (определено по умолчанию файлом CSS)
  • дата проведения рейтинга неограничена
  • язык установлен в качестве языка менеджера MODx

Этот вызов сниппета определяет рейтинг группы 'travelbook':

[!AnythingRating? &define=`1` &atrGrp=`travelbook` &language=`francais-utf8` &canVote=`travel` &nbIP=`200` &nbStars=`10` &endDate=`2014-06-30` &atrTpl=`@FILE:assets/snippets/anythingRating/templates/travelBookTpl.tpl.html` &atrCss=`@FILE:assets/snippets/anythingRating/css/travelBookCss.css`!]
  • &language=`francais-utf8` - языковой пакет Francais-utf8
  • &canVote=`travel` - проголосовать могут только веб-пользователи из веб-группы "travel"
  • &nbIP=`200` - хранение до 200 IP-адресов проголосовавших по каждому пункту
  • &nbStars=`10` - виджет и 10 звезд (определяется CSS-файлом)
  • &endDate=`2014-06-30` - дата окончания конкурса
  • travelBookTpl.tpl.html - как файл шаблона
  • travelBookCss.css - как CSS-файл

Пункт голосования

[!AnythingRating? &atrGrp=`travelbook` &atrId=`[*id*]`!]

где:

  • &atrGrp=`travelbook` - группа рейтинга
  • &atrId=[*id*] - уникальный идентификатор текущего документа

Этот пример вызова сниппета может использоваться, например в шаблоне для Ditto:

[[AnythingRating? &atrGrp=`travelbooks` &atrId=`[+id+]` &init=`opinion:[+id+]`]]

где:

  • &atrGrp=`travelbook` - группа рейтинга
  • &atrId=[+id+] - уникальный идентификатор текущего документа
  • &init=`opinion:[+id+]` - начальное значение рейтинга из TV 'opinion' документа [+id+]

Этот сниппет вызывается в шаблоне изображения maxigallery:

[!AnythingRating? &atrGrp=`photos` &atrId=`[+maxigallery.picture.id+]`!]

где:

  • &atrGrp=`photos` - группа рейтинга
  • &atrId=[+maxigallery.picture.id+] - уникальный идентификатор изображения, которое вы хотите оценить
[!AnythingRating? &atrGrp=`products` &atrId=`[*id*]` &noVotes=`1` &init=`opinion`!]

где:

  • &atrGrp=`products` - группа рейтинга
  • &atrId=[*id*] - уникальный идентификатор текущего документа
  • &noVotes=`1` - голосование не разрешается, отображается только результат
  • &init=`opinion` - инициализация голосов от TV 'opinion'

Лучшие по рейтингу

Этот сниппет выведет рейтинг документов в конкурсе `travelbook`:

[[AnythingRating? &getTopRated=`1` &atrGrp=`travelbook` &topTable=`site_content` &topTitleField=`pagetitle` &topLabel=`travelbooks`]]
  • отображение 5 лучших по рейтингу
  • идентификатор, название и описание в рейтинге берется из таблицы "site_content"
  • поле идентификатора используется как "ID" по умолчанию
  • название блока с результатми рейтинга "travelbooks"
  • имя поля для названия pagetitle из таблицы "site_content"
  • поля с описанием, изображением и ссылкой по умолчанию не используются
  • шаблон по умолчанию: assets/snippets/anythingRating/templates/topRated.tpl.html

Этот сниппет выведет рейтинг изображений в конкурсе `photos`:

[!AnythingRating? &getTopRated=`1` &topDir=`worst` &atrGrp=`photos` &topNb=`3` &topTpl=`@FILE:assets/snippets/anythingRating/templates/anotherTopRated.tpl.html` &topTable=`maxigallery` &topDescrField=`descr` &topImageField=`filename` &topLinkField=`gal_id` &topLabel=`photos`!]
  • отображение 3 худших по рейтингу!
  • идентификатор, название и описание в рейтинге берется из таблицы "maxigallery"
  • поля для идентификатора и названия используется как 'id' и 'title' по умолчанию
  • название блока с результатми рейтинга "photos"
  • имя поля для описания 'descr' берется из таблицы "maxigallery"
  • для ссылки используется поле 'gal_id'
  • для изображения используется поле 'filename'
  • шаблон по умолчанию: assets/snippets/anythingRating/templates/anotherTopRated.tpl.html

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram