Вопрос по Vote up/down

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

Аватар пользователя ph0en1xx ph0en1xx 27 июля 2009 в 1:54

Доброго времени суток!

Такой вопрос, поставил модуль Vote up/down, вроде все работает, но вот чего не могу понять при голосовании за один пост, во всех постах отображается этот голос. Кто-нибудь может подсказать как сделать, чтобы голос присваивался к посту за который проголосовали, а не ко всем постам.

искал поиском, но видимо только я не понял как это сделать...)

Комментарии

Аватар пользователя kodo kodo 27 июля 2009 в 4:49

Вообщем-то странно, т.к. в штатном режиме модуль нормально голосует за отдельную статью. Может чего в настройках намудрили (сомневаюсь что вообще есть такая возможность проголосовать за все посты) или конфликтует с какими-то еще модулями.

Аватар пользователя Freez Freez 27 июля 2009 в 18:30

раз +1 дописывается во всех каунтерах на странице, значит у вас, скорее всего, во всех постах выводится одинаковый id/class дива, в котором находится счет.

Аватар пользователя Freez Freez 31 июля 2009 в 3:05

Сегодня ставил на один из проектов vote_up_down и столкнулся с той же проблемой. В базе все голоса хранятся как надо, но это и понятно. Исходный код показываемой html'ки сказал что у point'а вид типа вместо положенного, скажем, . Естественно, что при одинаковом виде всех id и значения в jQuery будут обрабатываться коряво. При этом в vote_widget все прекрасно. Поиск по темплейтам ничего фатального не показал, а вот код модуля неприятно "порадовал". Вот кусок функции vote_up_down_link в vote_up_down.module:

    case 'node':
      $node_type = in_array($node->type, variable_get('vote_up_down_node_types', array()), TRUE);
      $style = variable_get('vote_up_down_widget_style_node', 0) == 1 ? '_alt' : '';
      if ($node_type && user_access('view up/down votes')) {
        if (variable_get('vote_up_down_reset_vote', 0) && user_access('use vote up/down')) {
          $token = drupal_get_token("vote_up_down/$type/$node->nid/0");
          $links['vote_up_down_reset'] = array(
            'title' => t('Reset vote'),
            'href' => "vote_up_down/$type/$node->nid/0",
            'attributes' => array('title' => t('Reset your vote.')),
            'query' => drupal_get_destination() .'&token='. $token,
          );
        }
        if ($teaser && variable_get('vote_up_down_link_node', 0) && variable_get('vote_up_down_link_node', 0) != 2 && $style != "_alt") {
          $links['vote_up_down_points'] = array(
            'title' => theme('vote_up_down_points', $node->cid, $type),
            'html' => TRUE,
          );
        }
        else if (!$teaser && variable_get('vote_up_down_link_node', 0) > 1 && $style != "_alt") {
          $links['vote_up_down_points'] = array(
            'title' => theme('vote_up_down_points', $node->cid, $type),
            'html' => TRUE,
          );
        }
      }
      break;

Как вы можете заметить, в обоих местах theme('vote_up_down_points', $node->cid, $type) вызывается с неправильным параметром. в общем, друзья, поменяйте и у себя эти строчки на theme('vote_up_down_points', $node->nid, $type) и будет вам счастье.

P.S. версия vote up/down 6.x-1.0-beta4 (последняя на сегодняшний день).
P.S. важно! на $node->nid меняйте только $node->сid, из раздела case 'node':, но никак не $comment->cid из раздела case 'comment':.