[решено] FiveStars связать комментариями

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

Аватар пользователя Cozmi Cozmi 21 января 2011 в 16:39

вывожу в ноде Fivestar widget через fivestar_widget_form($node);
-- в итоге отображается активный виджет, хочется, чтобы был пассивный, чтобы можно было голосовать только через комментарии. (Проблема 1)

есть модуль Fivestar Comments он позволяет голосовать за новость через комменты, однако при каждом комментировании есть возможность переменить свое решение, соответственно мы имеем комментарии с разными оценками (что плохо) и учитывается соотв последний (что впринципе логично). Как решить эту проблему? (Проблема 2)

Комментарии

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 21 января 2011 в 16:53

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

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 21 января 2011 в 22:17

нет, вы не понимаете, есть hook_fivestar_access(), с помощью его при голосовании можно определить, что делать, сохранить(обновить) результат или нет. Опять же, можно подменять виджеты для голосования на статику.

Хотя можно и на javascript тоже самое сделать, но тут уже будет другой подход...

Аватар пользователя Cozmi Cozmi 23 января 2011 в 15:43

немного коряво, но сделал:
(пользователь, может менять свою оценку, однако во всех комментариях она изменится на полседнюю)

template

<?php
function phptemplate_preprocess_comment(&$vars) {
$mycom db_fetch_object(db_query('SELECT * FROM {comments} WHERE nid = %d AND uid = %d ORDER BY cid DESC LIMIT 1',
 
$vars['node']->nid$vars['comment']->uid));
$comment=fivestar_comment_load($mycom->cid$vars['node']->nid);
 
$vars['comment']->fivestar_rating=$comment['value'];
$vars['comment']->fivestar_view=theme('fivestar_static'$comment['value'], 
variable_get('fivestar_stars_'$node->type5));
}
?>

шаблон comment.tpl

добавил


<?php print $comment->fivestar_view?>

выпилил кривой стандарный рейтинг из комментария регуляркой (может можно и красивее)


<?php 
$content
=preg_replace('~^.*<p>~sUi''<p>'$content);
print 
$content 
?>
Аватар пользователя finraag finraag 6 марта 2011 в 22:07

Смежный вопрос.
У меня не получается вывести через вьюс список комментариев, чтобы у каждого была оценка, привязанная к этому комменту. Вьювс тупо выводит все оценки к ноде, неважно как они были сделаны - через коммент или просто через виджет.
Может быть я что-то не учел? Куда копать, подскажите, пожалуйста.