• урок
  • pantey

Система рейтинга статей сайта в Drupal 7. Модуль Fivestar

19.02.2013

Это очередная статья, посвященная разработке на Drupal. Сегодня затронем такую довольно популярную тему, особенно для блогов, как система рейтинга статей сайта. Не будем долго тянуть, а сразу приступим к реализации. Данный функционал нам позволяет реализовать модуль Fivestar, как устанавливать модули вы уже знаете, на этом не останавливаемся. Замечу, что это не единственный модуль, который позволяет сделать систему рейтинга, но я им пользуюсь с момента освоения Drupal, и он меня болеее чем устраивает, как говорится ничего лишнего. Итак приступим, после того как вы активировали модуль, в разделе «Конфигурация», у нас появился дополнительный пункт

Каких-то глобальных настроек внутри нет, можно лишь задать теги голосования, один тег является категорией, при добавлении системы голосования для типа материала у нас будет возможность в какую категорию ее отнести, но это нам абсолютно не нужно, поэтому всё оставляем как есть. Теперь давайте добавим возможность голосовать за статью на сайте, для какого либо материала, у меня это будет реализовано на типе материала «Статья». Идём по пути «Структура -> Типы материалов -> Статья -> Управление полями» и добавляем необходимое поле, в нашем случае это fivestar. У меня настройки вот такие, естественно можете использовать свои

Замечу, что в качестве виджетов для данного поля у нас доступно:

  • Оценивать при редактировании
  • Оценивать при просмотре
  • Выбрать из списка нужный рейтинг при редактировании

Я выбрал «Оценивать при просмотре», т.к. я хочу что бы пользователи ресурса самостоятельно оценивали статьи, далее нам необходимо выбрать тег для данного рейтинга, помните я писал об этом выше? В данном случае он у нас только один, который идёт по умолчанию

Далее жмём «Сохранить настройки поля», и теперь перед нами появляются настройки поля, где мы можем указать какие-то дополнительные параметры для поля, как например количество звезд – я поставлю 10

И жмём «Сохранить настройки». С настройками поля мы справились, теперь нам необходимо определиться, где у нас будет отображаться данное поле, я для примера выведу его только в анонсе статьи, для этого переходим в пункт «Управление отображение полями -> Анонс», для того типа материала, к которому вы только, что присвоили данное поле

И видим, что наше поле находится в разделе «Скрытый», исправим это и просто перетащим его вверх

И жмём «Сохранить». Теперь давайте посмотрим, что получилось у нас на сайте

Видим, что теперь выводится как нужно. Единственное, что мы не сделали, так это не выставили права, на возможность голосования для «Ролей» на вашем сайте, я дам эту возможность всем ролям, как «Анонимам», так и «Зарегистрированным» пользователям. Для этого переходим в раздел «Пользователи - > Права», и ставим галочки напротив модуля Fivestar

И дальше жмём «Сохранить права доступа». Как вы теперь можете видеть, наша система голосования доступна для всех пользователей сайта. Теперь давайте посмотрим, что еще нам предоставляет данный модуль, давайте изменим вид «Звездочек», для этого идём по пути «Структура-> Типы материалов-> Статья ->Управление отображением -> Анонс», и нажмём по колёсику настройки

И перед нами открывается форма настройки для данного голосования, где мы можем выбрать формат «Звёзд», каким образом подсчитывать значения для данного голосования, а так же текст отображаемый под звёздами, я лишь изменю формат звёзд, ну а вы по своему вкусу

И «Сохраняем», смотрим, что теперь у нас на сайте

Видим, что формат звёзд у нас поменялся, на этом думаю с системой рейтинга для сайта можно закончить. Замечу только, что данная система доступна из Views, и в дальнейшем можно собрать список из самых популярных статей сайта по голосованию.

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (33)

Profile picture for user 1541
Гость
12.04.2013

Спасибо!

Profile picture for user 1541
sogdiana
16.04.2013

Меня очень интересует вопрос: как сделать блок самых популярных статей сайта по голосованию с fivestar с использованием views. Не могли бы написать фото урок. Спасибо.

Profile picture for user 1541
Дмитрий
14.06.2013

Добрый день! Подскажите может ли данный модуль блокировать повторные оценки с одного ip

Profile picture for user pantey
pantey
14.06.2013

да, может!

Profile picture for user 1541
Марина
06.08.2013

Подскажите, пожалуйста, как перевести служебные слова Average и votes

Profile picture for user pantey
pantey
06.08.2013

идёте по пути Конфигурация-> Перевод интерфейсов, далее переходите в пункт Перевод и там в через поиск ищите ваши слова и переводите как вам нужно!

Profile picture for user 1541
Марина
06.08.2013

Не дает переводить из-за html, вставленного в строку:
Average: !stars

Profile picture for user pantey
pantey
06.08.2013

странно! давайте скрин!

Profile picture for user 1541
Марина
06.08.2013

скрин

Profile picture for user pantey
pantey
06.08.2013

ну если не планируете постоянно обновлять модуль, исправьте в самом модуле.

Profile picture for user 1541
Марина
06.08.2013

А вы могли бы дать ссылку на мануал? Сама не смогла найти, как это сделать...

Profile picture for user pantey
pantey
06.08.2013

так мануала не существует. Открываете папку с модулем, ищите там файл с расширением .module открываете на редактирование, через CTRL+F ищите необходимое слово и вместо него пишите своё. Всё.

Profile picture for user 1541
anestezin
30.08.2013

Спасибо за статью! Возник вопрос, у меня нода с несколькими оценками и одна общая, как сделать так что бы модуль считал средние оценки (за которые голосуют юзеры) самостоятельно и выводил в основную полоску со звездами?

Profile picture for user 1541
Гость
04.10.2013

Молуль нерабочий.

Profile picture for user 1541
Гость
04.10.2013

Отменяю свой комментарий =) В настройках не разобрался

Profile picture for user 1541
Николай
04.10.2013

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

Profile picture for user pantey
pantey
11.10.2013

ну первое что приходит в голову, просто не выводит кнопку голосования для автора статьи через node.tpl.php

Profile picture for user 1541
Aectann
06.11.2013

А можно-ли с помощью данного модуля сделать рейтинг по нескольким пунктам с суммарной оценкой? Ну скажем как тут http://hosting-ninja.ru/rating/beget/otzyivyi.html

Profile picture for user pantey
pantey
07.11.2013

из коробки не получится. Но использовать его для рейтинга по пунктам можно, а дальше самому писать.

Profile picture for user 1541
Aectann
11.11.2013

Плохо всю голову уже изломал как такой рейтинг реализовать.

Profile picture for user 1541
Yury
29.11.2013

Отличный мануал, огромное спасибо!
Есть не большой вопрос - а если хочется в ручную прописать вывод данного поля в тизере в node.tpl.php, то как это должно выглядеть?
И вообще- возможно ли прописать вывод других полей в тизере в ручную? Имею в виду поля, добавленные мной в тип матерьяла.

Profile picture for user pantey
pantey
29.11.2013
<?php print render($content['название_ поля']);?>
Profile picture for user 1541
Yury
29.11.2013

ок, отлично, спасибо!

Profile picture for user 1541
Yury
30.11.2013

Поторопился( пробовал и в node.tpl.php и в page.tpl.php - никакой реакции у скрипта... Хотя если прописать простым echo "что нибудь", то все там выводится.
Что у меня может быть не так?

Profile picture for user 1541
sxweb
30.11.2013

и еще - если я использую модуль devel и прописываю в шаблоне node.tpl.php

, то он выводит только эти массивы

массивы
может быть у меня с шаблоном что то не так?

Profile picture for user pantey
pantey
01.12.2013

в управлении отображением полями для типа материала, выводимое поле в node.tp.php не должно быть скрыто! В данном случае в тизере у вас выводится крментарии, ссылки, станартное поле body и созданое поле для типа материала review_scrins_top

Profile picture for user 1541
shefarik
29.05.2014

Здраствуйте. Как сделать что бы например на http://dacity.ru/product/kurtka-1007346 аноним поставил рейтинг и звездочки остались показывать его оценку а не пропадали? Пока что аноним может голосовать и звездочки пропадают

Profile picture for user 1541
Артур
07.06.2014

Не могу найти, подскажите, где устанавливается запрет на повторное голосование зарегистрированными пользователями?

Profile picture for user pantey
pantey
15.06.2014

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

Profile picture for user 1541
Алекс
26.07.2014

А при помощи модуля можно сортировать статьи по рейтингу? То есть сортировку не по дате, а по оценкам пользователей. Плюс, еще бы отлично по категориям разбивать.

Profile picture for user pantey
pantey
27.07.2014

да, можно.

Profile picture for user 1541
Виталий
05.05.2015

А этот модуль можно теммизировать? нужен модуль способный принять свои звезды через css

Profile picture for user 1541
xaxel3000
08.05.2015

Здравствуйте.
А гугл будет подхватывать в сниппет этот рейтинг или для этого надо еще какие-то манипуляции проводить?
И ткните как устанавливать Fivestar
Спасибо.