Fivestar как поле CCK (несколько рейтингов за один материал)

Аватар пользователя kiev1 kiev1 7 ноября 2009 в 21:03

создал Fivestar CCK field ... оно активно при создании/редактировании материала (можна поставить оценку).. но когда метериал просматривается - оно неактивно тоесть невозможно проголосовать...

вот тут написано что

---
"3) Configure the rating widget to your liking. Most field have help text which explain their purpose. The Node ID field is the most important field on the page which determines exactly what node will receive the value of the rating. In a realy simple case, you could just enter the value 10 to always rate on the same node with nid = 10. Usually you'll need to enter PHP code to dynamically select what node you want to rate."
---

я так понял что где-то в настройках поля есть "Node ID field" в которое надо что-то вписать.

или может я его не правильно в теме вывожу?

в шаблоне пишу так
print $field_nomin1[0]['view'];

звездочки не активны
второй год мучаюсь

Комментарии

Аватар пользователя Обухов Никита Обухов Никита 8 ноября 2009 в 17:48

ССк-поля FiveStar можно использовать только для оценок автором, но не пользователями.

Эти поля подойдут для нод типа "Отзыв", или "Обзор". Собственно это написано в Readme.txt

Как буду дома, выложу сниппет, как сделать чтобы голосовали при просмотре.

Аватар пользователя Обухов Никита Обухов Никита 8 ноября 2009 в 17:53

Вот оно:

<?php
  $nid 
arg(1);
  
$output '';
  
$tags = array(
    
'service' => t('Service'),
    
'quality' => t('Quality'),
    
'range' => t('Range'),
    
'prices' => t('Prices'),
  );
    

  foreach (

$tags as $tag => $title) {
    
$votes fivestar_get_votes('node'$nid$tag);
 
    
$values = array(
      
'user' => isset($votes['user']['value']) ? $votes['user']['value'] : NULL,
      
'average' => isset($votes['average']['value']) ? $votes['average']['value'] : NULL,
      
'count' => isset($votes['count']['value']) ? $votes['count']['value'] : NULL,
    );
    

  if (

user_access('rate content')) {
    
$settings = array(
      
'stars' => 10,
      
'allow_clear' => TRUE,
      
'style' => 'average',
      
'text' => 'dual',
      
'content_type' => 'node',
      
'content_id' => $nid,
      
'tag' => $tag,
      
'autosubmit' => TRUE,
      
'title' => $title,
      
'feedback_enable' => TRUE,
      
'labels_enable' => TRUE,
      
'labels' => array(t('Poor'), t('Okay'), t('Good'), t('Great'), t('Awesome')),
    );
 
    
$output .= drupal_get_form('fivestar_custom_widget'$values$settings);
}

  else {
    

$output .= '<div class="fivestar-average-rating" style="font-weight:bold;">' $title ':</div>';
    
$output .= theme_fivestar_static($values['average'], 10$tag);
    
$output .= '<div class="description">';
    
$output .= t('Average rating: %average (%count votes)', array('%average' => $values['average'] / 10'%count' => $values['count'] ? $values['count'] : 0));
    
$output .='</div>';
  }
}
 

  print 

$output;
?>

Это можно выводить в блок, или в саму ноду. Результаты можно получить во Вьюс через Repalionships.

Аватар пользователя kiev1 kiev1 12 ноября 2009 в 1:45

Спасибо! Но поля тут непонятно где присутствуют
а так как-то не работает
стоят версии fivestar и api 6.x-2.x
виджеты появились, можно даже по нажимать и пишет "результат сохранен", однако при обновлении странички - данные обнуляются

вот тут похожая тема - http://drupal6.ru/kategorii/ocenka-nody-po-neskolkim-parametram
но там патченный модлуь
и даже с ним не работает тут - http://drupal6.ru/kategorii/ocenka-nody-po-neskolkim-parametram где автор поставил тот модуль - не работает - при попытке голосования пишет "сохраняем результат" и подвисает - результат не сохраняется.

вот тут http://drupal.org/node/335493 та-же самая проблема - voting-API сделали, но использовать его не выходит: то патч приделывают, то компьютед фиелд программируют что бы сохранял.

неужели все так сложно?
или есть выход?

Аватар пользователя kiev1 kiev1 12 ноября 2009 в 1:51

о, разобрался рассматривая код модуля

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

а при выводе ноды надо не перечислять внутри теги, а брать из настроек вот так, ну и выводить заодно
<?php
foreach (fivestar_get_tags() as $tag) {
if (fivestar_validate_target('node', $node->nid, $tag)) {
print fivestar_widget_form($node, $tag);
}
}
?>
теперь бы научиться заголовки у fivestar_widget_form произвольные по русски у критериев делать, а то с ними тоже не сложилось - не доделано как-то, вот у fivestar_widget_form $tag есть, а заголовок этого тега в настройках отсутствует но выводится что-то дефолтовое, а еще хотелось-бы описание или пояснение, ну или хотя бы убрать его заголовок - тогда в теме можно свой вписать

Аватар пользователя iNFerNo iNFerNo 27 ноября 2011 в 21:57

"kiev1" wrote:
оказывается критерии по которым делать рейтинг - надо в настройках fivestar добавить, тогда он начинает в них сохранять

и где эти настройки ???