Помогите разобратся с администрированием флагов

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

Аватар пользователя andrey-sw andrey-sw 3 апреля 2013 в 3:19

Собственно пытаюсь сделать коллективную модерацию.
поставил модули flag, flag_abuse, создал флаг abuse_node, настроил действия на депубликацию/публикацию материалов все замечательно работает.
Теперь второй этап.
Скажем в результате один из материалов был снят с публикации но его надо вернуть. Тоесть для этого материала нужно сбросить флаги установленные другими пользователями.
Модуль abuse_node создал соответствующую вьюшку и ссылку в меню, где отображаются материалы с установленными флагами, есть ссылка на снятие флага жмем на неё и удивляемся.
Например
тек пользователь admin
флаг установили user1 и user2
жмем ссылку напротив user1 -> устанавливается флаг от имени admin
жмем ссылку напротив user2 -> снимается флаг от имени admin

Если покопаться во вьюшке то оказывается что поле Ссылка флага генерируется не для пользователя установившего флаг как ожидали а для текущего пользователя.

Собственно вопрос - как это исправить, или подскажите как дать возможность модератору сайта удалять флаги выставленные другими пользователями...

Комментарии

Аватар пользователя eLSe eLSe 3 апреля 2013 в 8:14

Алгоритм abuse_node вполне логичен.
Если надо снять другие флаги - с помощью Rules на снятие флага пользователем роли админа навесить действие, которое циклом по всем установленным флагам будет их отключать.

Аватар пользователя andrey-sw andrey-sw 3 апреля 2013 в 11:03

Вот как раз с логикой и не понятно, в связях когда привязываем флаги к ноде, есть пункт где можно выбрать отображать только свои флаги или все флаги, если выбираем все то вьюшка соответственно отобразит все флаги с указанием пользователя установившего флаг, самой ноды и выведет ссылку на снятие установку флага но относящуюся к текущему пользователю, к тому же сам статус флага будет отображен неверно.
Пример
тек пользователь admin
пользователь user установил флаг
во вьюшке отобразится 1 стока но ссылка в ней говорит что флаг не установлен, если на неё нажать в табличке появится вторая строка сообщающая что admin установил флаг.

В итоге ссылка на флаг работает только для своих флагов и соответствующая настройка в свойствах связи теряет смысл

А насчет Rules не совсем понял - поясните пожалуйста

Аватар пользователя eLSe eLSe 3 апреля 2013 в 11:18

С помощью Rules можно навешивать свои действия на некоторые операции, в т.ч. на изменение флага. Т.е. если нам надо убрать чужие флаги при снятии флага админом, мы создаем новое правило:

  1. Действие: изменение флага
  2. Условие: текущий пользователь имеет роль Админа
  3. Условие: флаг установлен
  4. Условие: нода имеет такой-то тип
  5. Действие: цикл по флагам ноды
  6. Вложенное в цикл действие: снять флаг
Аватар пользователя andrey-sw andrey-sw 3 апреля 2013 в 12:10

Попробую, возможно и решу локальную задачу, хоть и придется ставить дополнительный модуль.
И тем не менее это не снимает первоначального вопроса, я считаю что это баг или не доработка, кстати проверял на разных версиях flag 2.х 3.х везде одинаково

Аватар пользователя andrey-sw andrey-sw 10 ноября 2015 в 11:49

Получилось правда с нюансами, например админы не смогут ставить флаги которые админят, так как событие перекрывается, что не всегда удобно, хотя наверно можно завести еще один флаг типа Reset для сброса другого флага
И инструкцию которую вы написали реализовать не смог (может она для 6-ки)

у меня это выглядит так