Система рейтинга для пользователей и сообщений (и комментариев) - PullRequest
2 голосов
/ 15 июля 2010

Мне нужно реализовать доску объявлений с рейтинговой системой.Что-то похожее на переполнение стека, но гораздо проще.

Мне нужно оценить оба вопроса / ответа и вычислить оценку для каждого пользователя.

Я ищу модули в Drupal для его реализации.Не могли бы вы дать мне совет?

спасибо

Ответы [ 2 ]

2 голосов
/ 15 июля 2010

Fivestar и Пользовательские очки могут быть использованы для этой цели, но вы получите только что-то похожее на переполнение стека.
Первый модуль (для которого требуется ГолосованиеAPI ) может использоваться, чтобы позволить пользователям голосовать, а второй модуль может использоваться для преобразования голосов в баллы для пользователей, которые проголосовали (среди прочего - модуль не ограничен этим).Для интеграции этих двух модулей есть еще один модуль, но я не уверен, что он является частью «Пользовательских баллов» или Пользовательских баллов. Вкладываются .

Проблема с Fivestar заключается в том, что пользователиразрешено голосовать от 1 до X (я думаю, что максимальное количество голосов может быть изменено), что отличается от системы голосования, используемой переполнением стека, где пользователи могут просто сообщить «Мне нравится» или «Мне не нравится»Это".С Fivestar будут только положительные голоса, и никто не сможет проголосовать за комментарий или узел;можно было бы снизить среднее значение, отдав минимальный голос.

Между модулями, которые я перечислил, нет модуля, который позволял бы выставлять баллы автору узла / комментария;используя "Voting API" и "User Points", это можно было бы сделать, но ни один модуль, который я просматривал, не позволяет это сделать (это означает, что вы, вероятно, могли бы написать собственный модуль).

Если вы посмотрите на список модулей , включенных в профиль установки ArrayShift , вы можете получить представление о модулях, которые можно использовать для достижения той же цели.
Список модулей включает

В частности, модуль, являющийся частью ArrayShift Support Modules (as_tweaks) содержит следующий код:

/**
 * Below, a bunch of simple hook implementations that award userpoints based
 * on various events that happen. In theory, Rules module and various other tools
 * could be used to do these things, but most of those modules don't have easy
 * to export/import configuration data.
 */

// VotingAPI hook. When a user casts a vote on a node, the author should
// get/lose points..
function as_tweaks_votingapi_insert($votes) {
  foreach ($votes as $vote) {
    if ($vote['content_type'] == 'node' && ($node = node_load($vote['content_id']))) {
      // Award the points
      userpoints_userpointsapi(array(
        'uid'         => $node->uid,
        'points'      => $vote['value'] * 10,
        'operation'   => 'vote up',
        'entity_id'   => $node->nid,
        'entity_type' => 'node',
      ));
    }
  }
}

// VotingAPI hook. When a user casts a vote on a node, the author should
// get/lose points..
function as_tweaks_votingapi_delete($votes) {
  foreach ($votes as $vote) {
    if ($vote['content_type'] == 'node' && ($node = node_load($vote['content_id']))) {
      // Award the points
      userpoints_userpointsapi(array(
        'uid'         => $node->uid,
        'points'      => $vote['value'] * -10,
        'operation'   => 'vote up',
        'entity_id'   => $node->nid,
        'entity_type' => 'node',
      ));
    }
  }
}
1 голос
/ 15 июля 2010

Drupal Fivestar прекрасно работает.

...