Голосование при помощи Rate - изначально показать количество проголосовавших

Главные вкладки

Аватар пользователя marigolu marigolu 11 февраля 2015 в 20:55

Здравствуйте!
Настроила модуль Rate. Не пойму как сделать, чтобы изначально показывал не ноль, а количество уже отданных материалу голосов.
Сейчас ситуация такая. Изначально (до голосования) пользователь видит: Мне нравится 0
После того как сам проголосует, пользователь видит: Мне нравится 3

1. Как сделать, чтобы до своего голосования пользователь видел сколько голосов уже отдано материалу? В данном случае: Мне нравится 2

2. На разберусь как при помощи вьюх показывать результаты голосования. В "Связи" добавила Содержимое: Vote results и Содержимое: Votes
А что дальше?

Комментарии

Аватар пользователя marigolu marigolu 11 февраля 2015 в 20:59

3. Можно ли назначать виджет Rate не просто материалу определенного типа, например Мастер-классу mk. А еще учитывать участвует ли он в конкурсе - материалу поставлен в соответствии термин словаря.

Аватар пользователя marigolu marigolu 15 февраля 2015 в 18:38

Актуальны все три вопроса. Единственное, что сделано - это в виджете Fivestars до голосования пользователя убрала вывод: Проголосовало 0 т.к. это не правда. Сколько человек проголосовало показываю только после того, как пользователь отдал свой голос.

в файле /public_html/sites/all/modules/rate/templates/fivestar/rate-template-fivestar.tpl.php
код
if ($info){
print '

' . $info . '

';
}

заменить кодом
if (($info) and ($just_voted)){
print '

' . $info . '

';
}

И назрел вопрос:
4. Кто-нибудь знает как в шаблоне модуля Rate добраться до переменных, отвечающих за выводимую ноду? До свойств выводимой ноды?
Если это получится, то думаю вопрос 3 можно будет решить.

Аватар пользователя Stroitel Stroitel 16 февраля 2015 в 10:08

Вероятно, как-то использовать присутствие/отсутствие термина/поля что это конкурс.

Если "Конкурс" - это поле (и его тип целое число), то как-то
$ln = field_language('node', $node, 'field_konkurs');
$tyn->field_konkurs[$ln][0]['value'];
if ($tyn != 1) {
print $info;
}

Если термин таксономии (как в твоем случае) - то проверять наличие термина из этого словаря и его значение. Если значение (или его tid) совпадает с "конкурс" - то выводить результат голосования.
Сам не делал, но думаю что надо использовать что-то вроде
$node->field_tags[LANGUAGE_NONE][0]['tid']
(tags - имя словаря, в котором содержится термин "конкурс", с языком, надеюсь, понятно, и даше проверять tid на предмет совпадает он с tid=конкурс)

Если в шаблоне, в котором использовать код будешь нету этих переменных - то надо их "подтянуть". Перед твоим кодом добавить строку типа: global $node;

ЗЫ: Это не готовый ответ, а вариант "куда смотреть" чтоб это сделать Smile