Ваше запитання дійсно складається з 2 частин, тобто про те, як реалізувати:
- система репутації , яка, як оцінки декількох користувачів про користувача конкретного.
- система досягнення цілей , які, як нагородження користувача після виконання різних завдань, проблеми і т.д.
Детальніше про те, як реалізувати кожну з обох систем, читайте далі.
Система досягнення цілей
Типово є два модулі, які ви можете вибрати для такого типу системи, тобто:
Модуль Досягнення , як це запропоновано в іншій відповіді. Цей модуль в значній мірі покладається на спеціальне кодування для обробки багатьох функцій.
Модуль Цілей (розкриття інформації: я підтримую її), який можна використовувати для стимулювання будь-якого на вашому сайті, наприклад голосування, обміну вмістом, створення стосунків тощо.
Цілі та завдання реалізуються за допомогою суттєвих об'єктів. Деякі приклади завдань, які слід виконати, можуть бути:
- Увійдіть на сайт один раз на день протягом трьох днів поспіль.
- Опублікуйте декілька вузлів вибраних типів вмісту.
- Зробіть дружнє з'єднання на сайті.
- І т.д.
Цілі можна налаштувати за допомогою "Керування полями" та / або "Керування дисплеєм". Все можна зробити лише за допомогою функцій побудови веб-сайтів (не задіяний спеціальний код), хоча також є гачки для їх інтеграції у спеціальне кодування. Таким чином, модуль Цілі побудований навколо, використовуючи конфігурацію адміністратора інтерфейсу. Крім того , цілі і завдання в рамках цілей модуля є fieldable суті, тому у вас є можливість додавати додаткові поля і включити ці об'єкти в Перегляди . Використовуючи Goals Extras
підмодуль, він також інтегрується з модулем User Points .
Перейдіть до відео "Цілі", яке включає:
- загальне вступ до модуля.
- демонстрація її встановлення, налаштування та використання.
- вибірки того, як він використовує модулі Правил, щоб зробити свою магію (тобто відстежити прогрес користувача для досягнення різних цілей).
Репутаційна система
Використовуючи модуль відповідей (розкриття інформації: я є (спільним) обслуговуючим персоналом), ви можете " поставити систему гарної репутації " (як у вашому питанні). Ось декілька деталей про це (зі сторінки проекту):
Відповіді дозволяють впровадити систему запитань і відповідей на сайті Drupal. Користувачі можуть розміщувати питання, а інші користувачі можуть відповідати на них.
Щоб отримати докладнішу інформацію, перейдіть на сторінку проекту. Відвідайте його демо - сайт для демонстрації (в режимі читання тільки для анонімних користувачів) з Переглядів списків на основі з:
Модуль "Основні" відповіді дозволяє містити типи вмісту " Питання та відповіді" , тоді як відповіді відображаються нижче питання, до якого вони стосуються. Ці 2 типи вмісту можна поправити, ви можете керувати їх відображеннями тощо.
Використовуйте його підмодулі, щоб увімкнути вибрану функціональність (виходячи з вимог сайту), тобто:
- Відповіді Найкращий відповідь , який дозволяє позначити будь-яку відповідь на певне запитання як найкращу (прийняту) відповідь (відображати сині галочки зліва від кожної відповіді, і яка замінюється зеленою галочкою, коли відповідь позначена як найкраща відповідь).
- Тема відповідей , яка перетворює (досить нудний) показ ванілі на питання (та пов'язані з ним відповіді під ним), у спосіб більш привабливий зовнішній вигляд. Наприклад, помаранчевий міхур, який додається навколо питання (щоб краще виділити його).
- Повідомлення відповідей , щоб дозволити користувачам, які ввійшли в систему, підписатися на вибрані запитання, щоб вони отримували сповіщення (використовуючи стек повідомлень ), коли запитання отримували відповіді.
- Відповіді Голосування , щоб запровадити систему, яка б викликала або знижувала питання або запитання та / або відповіді (для яких використовуєтьсямодуль Rate ).
- Відповідає Точками користувачів , щоб збільшити або зменшити " точки репутації " (для яких використовуєтьсямодуль Userpoints ) на такі події, як голосування вгору або вниз за запитання чи відповідь, або позначення відповіді як " найкращий відповідь ".
Досить багато його «бізнес-логіки» реалізовано за допомогою всіляких настроюваних правил (за допомогою модуля « Правила» ). Наприклад, якщо ви не погоджуєтесь із нестандартними правилами щодо того, скільки "точок користувача" надано на запитання (або відповідь), які не використовуються, ви просто використовуєте інтерфейс правил, щоб настроїти кількість таких балів до ваших вимог. Напр.: Чи справді питання про заборону дій повинні бути вільними (тобто: Чи повинен суднорепортаж втратити будь-які точки при цьому?).
Для повноти нижче наведено правило (у форматі експорту правил), яке використовується для надання «+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"
}
}
]
}
}