Собственно пытаюсь сделать коллективную модерацию.
поставил модули flag, flag_abuse, создал флаг abuse_node, настроил действия на депубликацию/публикацию материалов все замечательно работает.
Теперь второй этап.
Скажем в результате один из материалов был снят с публикации но его надо вернуть. Тоесть для этого материала нужно сбросить флаги установленные другими пользователями.
Модуль abuse_node создал соответствующую вьюшку и ссылку в меню, где отображаются материалы с установленными флагами, есть ссылка на снятие флага жмем на неё и удивляемся.
Например
тек пользователь admin
флаг установили user1 и user2
жмем ссылку напротив user1 -> устанавливается флаг от имени admin
жмем ссылку напротив user2 -> снимается флаг от имени admin
Если покопаться во вьюшке то оказывается что поле Ссылка флага генерируется не для пользователя установившего флаг как ожидали а для текущего пользователя.
Собственно вопрос - как это исправить, или подскажите как дать возможность модератору сайта удалять флаги выставленные другими пользователями...
Комментарии
Алгоритм abuse_node вполне логичен.
Если надо снять другие флаги - с помощью Rules на снятие флага пользователем роли админа навесить действие, которое циклом по всем установленным флагам будет их отключать.
Вот как раз с логикой и не понятно, в связях когда привязываем флаги к ноде, есть пункт где можно выбрать отображать только свои флаги или все флаги, если выбираем все то вьюшка соответственно отобразит все флаги с указанием пользователя установившего флаг, самой ноды и выведет ссылку на снятие установку флага но относящуюся к текущему пользователю, к тому же сам статус флага будет отображен неверно.
Пример
тек пользователь admin
пользователь user установил флаг
во вьюшке отобразится 1 стока но ссылка в ней говорит что флаг не установлен, если на неё нажать в табличке появится вторая строка сообщающая что admin установил флаг.
В итоге ссылка на флаг работает только для своих флагов и соответствующая настройка в свойствах связи теряет смысл
А насчет Rules не совсем понял - поясните пожалуйста
С помощью Rules можно навешивать свои действия на некоторые операции, в т.ч. на изменение флага. Т.е. если нам надо убрать чужие флаги при снятии флага админом, мы создаем новое правило:
Попробую, возможно и решу локальную задачу, хоть и придется ставить дополнительный модуль.
И тем не менее это не снимает первоначального вопроса, я считаю что это баг или не доработка, кстати проверял на разных версиях flag 2.х 3.х везде одинаково
Получилось правда с нюансами, например админы не смогут ставить флаги которые админят, так как событие перекрывается, что не всегда удобно, хотя наверно можно завести еще один флаг типа Reset для сброса другого флага
И инструкцию которую вы написали реализовать не смог (может она для 6-ки)
у меня это выглядит так