Как сделать дифференцированный рейтинг?

Аватар пользователя eve eve 24 ноября 2014 в 19:03

Предупреждение о своём уровне: не программер. Пользую друпал на уровне админки и чуть-чуть могу поправить код, если есть чёткий алгоритм, куда и что вписать/заменить.

Задача.
Необходимо реализовать различный рейтинг и оценки пользователей, в зависимости от их ролей.

Поясняющие принципы.

  1. Анонимусы ни за кого не могут голосовать.
  2. На сайте, кроме админов и модераторов есть роли, напоминающие ступени "продвинутости":
    - Клиент с минимальными правами, по сути, потребитель;
    - Слушатель (+ Студент) — группа ролей с правами почти как у Клиента + некоторые дополнительные права;
    - и группа ролей Специалистов с разными названиями (Психолог, Юрист и пр.), но практически одинаковыми правами, бОльшими, чем у Клиентов и Слушателей.
  3. Пользователь с ролью Клиент должен иметь один "ползунок" рейтинга, характеризующий его добропорядочность. Возможно, это сумма + и -.
  4. Слушатель (+ студент) должен иметь два рейтинга:
    - один набирает оценками Клиентов — "народный" рейтинг;
    - второй — оценками Специалистов — "профессиональный" рейтинг.
  5. Специалист в идеале должен иметь под своей аватаркой три значения:
    1) уровень профессионального образования — мыслится присваивать вручную, по предоставленным документам, так что это даже не в чистом виде рейтинг, а нечто совсем сторонее, показатель "учёности", подтверждённой администрацией сайта;
    2) и 3) — то же, что и у Слушателей: разделить оценки Клиентов и коллег, других Специалистов.
  6. Необходимо дифференцировать права оценок. В общем-то, это вытекает из предыдущего.
    - Клиента могут оценивать пользователи с ролями выше Клиента;
    - "народный" рейтинг набирается оценками Клиентов;
    - "профессиональный" рейтинг набирается оценками коллег, при этом Слушатели и Студенты не могут оценивать "профессиональность" друг друга, а только пользователей с ролями из группы Специалистов;
    - было бы совсем хорошо, если бы в профрейтинге Специалиста "лайки" других Специалистов определялись дороже, чем "лайки" Студентов и Слушателей.

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

Всё это пытались изобразить графически.
Схема:

Возможно ли вообще реализовать такое?
Если возможно, то с помощью каких модулей и как?

Всем сердечная благодарность за помощь.

ВложениеРазмер
Иконка изображения rating.png53.78 КБ
0 Thanks

Комментарии

Аватар пользователя eve eve 24 ноября 2014 в 19:55

"+ свой код" — это особенно порадовало. ))
Говорю же, не кодер я.
Это очень трудно, к такому код написать?

Почитала про Voting API, выяснила, что к нему надо прикручивать другие модули. Типа Fivestar. Может быть, что-нибудь ещё и попробовать поковырять это самостоятельно? Или без кодописания будет не обойтись, учитывая условия задачи?

Аватар пользователя dgastudio dgastudio 24 ноября 2014 в 20:24

геморройно и муторно.

только не понятно , вы помощи ищите, или заказ размещаете?

Аватар пользователя Plazik Plazik 24 ноября 2014 в 21:23

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

Аватар пользователя eve eve 24 ноября 2014 в 21:30

Засчёт голосов.
Причём, голос более профессионального пользователя должен стоит дороже (справедливо для типа рейтинга популярности у коллег, популярность у потребителей, естественно, насчитывается одинаково от лайков любых ролей).
Количество постов прямого значения не имеют, но кнопка "лайк" хотелось бы видеть везде. То есть, если спец, к примеру, написал ряд статей и ответил на форуме, то все его материалы могут оценить другие пользователи, при этом оценки коллег складываются в значение популярности среди профи, а оценки потребителей — в "народную" популярность.

Оценивается не сам продукт (статья, комментарий и пр), а его автор. Оценки разных ролей должны разделяться: "народный" и "коллегиальный" рейтинг.

Аватар пользователя Plazik Plazik 24 ноября 2014 в 21:38
"eve" wrote:

то все его материалы могут оценить другие пользователи

"eve" wrote:

Оценивается не сам продукт (статья, комментарий и пр), а его автор

Т.е. даже если оценивают материал, то оценка идет автору?

Аватар пользователя eve eve 24 ноября 2014 в 21:42

Именно так. Оцениваться должна не личность автора, а полезность его продукции, но общий рейтинг полезности его деятельности должен быть виден в его профиле и/или под аватаром.