Как внедрить систему, основанную на репутации, со значками в Drupal, аналогичную сайтам StackExchange?

16

Зарабатывать значки на StackExchange - это весело. Но кроме того, это способствует качественному взаимодействию с пользователями и помогает отсеять спам (я никогда не видел спам-пост на сайте).

У меня есть веб-сайт сообщества с примерно 500 активными пользователями, но спамеры начинают становиться все более плодовитыми.

Я хотел бы сделать сайт более привлекательным, одновременно продвигая то же качество интерактивности.

Как бы вы порекомендовали установить хорошую систему репутации , а также систему достижения цели ?

blue928
источник
Что касается спамеров, которые были упомянуты в первоначальном вопросе: они все еще будут там. Таким образом, с этими спаммерами можно бороться, следуя предложению, сделанному в ответе Free Radical на drupal.stackexchange.com/questions/121382/… .
gpruim

Ответы:

17

Есть модуль User Points и модуль User Badges , хотя версия User Badges версии 7.x пока не подходит для производства (по состоянию на 4 июня 2012 г.).

К счастью, User Points интегрируется с модулем Rules , который позволяет вам значительно настраивать способы, которыми пользователи получают (или, возможно, теряют) очки.

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

Патрик Кенни
источник
11

Для значков есть модуль Достижения .

Модуль достижений предлагает возможность создавать достижения и значки, аналогичные системам, которые можно увидеть на Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue и других. Для сайта Drupal это может означать комментирование определенного количества раз, запуск темы форума, посещение сайта каждый день недели или что-либо еще, что можно отслеживать и кодировать.

stevepurkiss
источник
1

Ваш вопрос действительно состоит из 2 частей, т.е. о том, как реализовать:

  • система репутации , которая похожа на оценку несколькими пользователями определенного пользователя.
  • система достижения целей , которая похожа на вознаграждение пользователя после выполнения различных задач, задач и т. д.

Читайте дальше, чтобы узнать больше о том, как реализовать каждую из этих систем.

Система достижения целей

Обычно для такого типа систем вы можете выбрать 2 модуля, а именно:

  1. Модуль достижений , как уже предлагалось в другом ответе. Этот модуль в значительной степени опирается на пользовательское кодирование для обработки многих функций.

  2. Модуль « Цели » («Раскрытие информации: я его поддерживаю»), который можно использовать для стимулирования чего-либо на вашем сайте, например голосования, обмена контентом, создания отношений и т. Д.

    Цели и задачи реализуются с помощью полевых объектов. Некоторые примеры задач, которые должны быть выполнены, могут быть:

    • Вход на сайт один раз в день в течение трех дней подряд.
    • Опубликовать количество узлов выбранных типов контента.
    • Сделайте дружескую связь на сайте.
    • И т.п.

    Вы можете настроить цели через «Управление полями» и / или «Управление отображением». Все может быть сделано только с помощью функций построения сайта (без специального кода), хотя есть и хуки, позволяющие интегрировать его в собственный код. Таким образом, модуль Goals построен на основе конфигурации интерфейса администратора. Кроме того, цели и задачи в модуле «Цели» являются полевыми объектами, поэтому у вас есть возможность добавлять дополнительные поля и включать эти объекты в представления . Используя Goals Extrasсубмодуль, он также интегрируется с модулем User Points .

    Перейдите к видео Цели, которое включает в себя:

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

Система репутации

Используя модуль « Ответы » (Раскрытие информации: я (со) поддерживаю его), вы можете « создать хорошую систему репутации » (как в вашем вопросе). Вот некоторые подробности об этом (со страницы проекта):

Ответы позволяют внедрить систему вопросов и ответов на сайте Drupal. Пользователи могут оставлять вопросы, а другие пользователи могут отвечать на них.

Перейдите на страницу проекта для более подробной информации. Посетите его демо - сайт для демонстрации (в режиме чтения только для анонимных пользователей) из Просмотров списков на основе из:

Модуль «базовых» ответов включает типы контента « Вопрос и ответ» , а ответы отображаются под вопросом, к которому они относятся. Эти 2 типа контента являются совместимыми, вы можете управлять их отображением и т. Д.

Используйте его подмодули для включения выбранных функций (в зависимости от требований сайта), то есть:

  • Лучший ответ для ответов , который позволяет пометить любой из ответов на конкретный вопрос как лучший (принятый) ответ (чтобы отобразить синие галочки слева от каждого ответа и который заменяется зеленой галочкой, когда отмечен ответ как лучший ответ).
  • Тема «Ответы» , которая превращает (довольно скучное) ванильное отображение вопроса (и связанных с ним ответов под ним) в более привлекательный внешний вид. Например, оранжевый пузырь, добавленный вокруг вопроса (чтобы лучше его выделить).
  • Уведомление об ответах , позволяющее зарегистрированным пользователям подписываться на выбранные вопросы, чтобы они получали уведомления (используя стек сообщений ) при получении ответов на вопросы.
  • Ответы голосования , чтобы внедрить систему upvote или downvote либо вопросы и / или ответы (который использует Rate модуля).
  • Отвечает на пользовательские баллы , чтобы увеличить или уменьшить « очки репутации » (который используетмодуль «Пользовательские баллы ») на события, такие как голосованиес повышением или понижением рейтинга на вопрос или ответ, или пометить ответ как « лучший ответ ».

Довольно много ее «бизнес-логики» реализовано с помощью всевозможных настраиваемых правил (с помощью модуля « Правила »). Например, если вы не согласны с готовыми правилами о том, сколько «пользовательских баллов» присуждается поднятому (или опущенному) вопросу (или ответу), вы просто используете пользовательский интерфейс правил для настройки количество таких баллов по вашим требованиям. Например: должны ли вопросы понижающего голосования действительно быть свободными (то есть: должен ли понижающий голос потерять какие-либо очки при этом?).

Для полноты ниже приводится правило (в формате экспорта правил), которое используется для предоставления + 15 баллов автору ответа вместе с +2 баллами для пользователя, который помечает этот ответ как принятый. (= автор Вопроса ), тогда как пометка его как таковая выполняется путем пометки этого Ответа как «Лучший ответ» (с использованием модуля « Флаг »):

{ "rules_flag_answers_best_answer" : {
    "LABEL" : "flag_answers_best_answer",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "userpoints_rules", "flag" ],
    "ON" : { "flag_flagged_best_answer" : [] },
    "IF" : [
      { "NOT data_is" : { "data" : [ "flagging-user" ], "value" : [ "flagged-node:author" ] } }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "flagged-node:author" ],
          "points" : "15",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      },
      { "userpoints_action_grant_points" : {
          "user" : [ "flagging-user" ],
          "points" : "2",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      }
    ]
  }
}
Pierre.Vriens
источник