[РЕШЕНО] Как снять все флаги одним кликом. Модули Flag и Rules

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

Аватар пользователя Goodseeker Goodseeker 12 сентября 2013 в 12:36

Подскажите, пожалуйста, как правильно настроить Rules , чтобы пользователь одним кликом смог снять все его "Закладки"?
"Закладки" добавляются модулем Flag

Пробовал добавить пустой флаг "Очистить закладки"
И настроить Rules - не получается настроить

Комментарии

Аватар пользователя Koreychenko Koreychenko 12 сентября 2013 в 12:38

Попробуйте модуль Rules Link - запускает рулез при клике на ссылку, а в правилах поставить Fetch Entity by property в этом самом проперти поставить flagged. А дальше в actions поставить unflag.

Аватар пользователя iNFerNo iNFerNo 12 сентября 2013 в 13:48

у меня рулес лик не хочет запускать при клике по ссылке кастомной в блоке. у меня это вышло с рулес линкевант.

но если к ноде привязать рулес линкс может быть и сработает...

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

Друзья, спасибо.
Мое решение обошлось двумя модулями Flag + Rules

Решение: https://drupal.org/node/956902#comment-3647776

Скрин моего рулса для Drupal 7
Настройка Rules + Flag

Суть правила:
Срабатывать при постановке (и снятия флага - не обязательно, если состояние флага все равно будем сбрасывать в действиях) "clear_button"

Действия:
Trim:
сначала флаг "Закладок"
затем флаг "clear_button"

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

UPD
Если выводить Views-ом добавленные материалы, то нужно сделать кнопку "очистить"

Если на эту кнопку поставить ссылку с любого материала, то работать будет для всех кроме Анонимных.
Для анонимных генерится другая ссылка.
Чтобы ссылка для всех была актуальной, можно добавить во Views отношение к флагу, который очищает; добавить поле с ссылкой на этот флаг и скрыть поле.
Дальше можно, к примеру в шапке этого Views добавить "Глобальный: Текстовое поле" и "Использовать шаблон подстановки из первой строки" - подставляем значение скрытого поля, который ссылается на флаг "Очистить"

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 12:37

Скажите а при создание флага вы выбирали вариант для материалов да? И эта кнопка для всех сущностей (нод) работает???

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 12:41

Не понятно как флаг сбрасывает все флаги у конкретной ноды например.

Кстати а если создать правило для flagging и там выбрать флаг конкретной ноды и уже для этого правило создавать?

Аватар пользователя Goodseeker Goodseeker 13 сентября 2013 в 12:42

Да, для материалов.

На странице вьювс где собираются отмеченные флагом ноды, создал кнопку для сброса всех флагов.
Для кнопки взял ссылку флага "clear_button" любой ноды - и все работает

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 12:47

у вас тут снятие всех флагов одного пользователя или снятие всех флагов всех пользователей одного флага?

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 12:52

"Goodseeker" wrote:
Да, для материалов.

На странице вьювс где собираются отмеченные флагом ноды, создал кнопку для сброса всех флагов.
Для кнопки взял ссылку флага "clear_button" любой ноды - и все работает

Т.е. допустим у меня есть 5 флагов (закладки, мне нравиться, в избранное и тд) я создаю еще один флаг - clear flag для материалов выбираю там например флаг мне нравиться.

Создаю вьху где вывожу все ноды отмеченные флагом мне нравиться, в шапку добавляю ссылку ()код вывода флага) на флаг - clear flag

и после создания вашего рулса при клике на флаг сбросяться все флаги да?

А зачем редирект, почему нельзя показывать пустое представление без добавленных флагов?

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 13:11

"Goodseeker" wrote:
создал кнопку для сброса всех флагов.

сброса вообще всех флагов или для конкретной ноды (для каждой ноды на вьюхе свои флаги выводяться).

Аватар пользователя iNFerNo iNFerNo 13 сентября 2013 в 13:23

Вопщем ваше решение не понятно для чего придумано ИБО сбрасываются ВСЕ флаги а не флаги для отдельной ноды. Ваша задача кончено решаема.

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

Аватар пользователя Goodseeker Goodseeker 13 сентября 2013 в 18:30

iNFerNo wrote:
Вопщем ваше решение не понятно для чего придумано ИБО сбрасываются ВСЕ флаги а не флаги для отдельной ноды. Ваша задача кончено решаема.

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


Пробовали поставить выполнение правила по таким условиям?:
для определенной роли
для текущей ноды

Действие:
Трим выбранные флаги

Аватар пользователя andreystrelkov andreystrelkov 21 сентября 2013 в 19:21

Опа! тажа беда
у меню юзера флагируют термин таксономии, и мне нужно чтобы когда кол-во флагов термина настигло 50, поменять поле у термина, и сбросить снова в 0 флаги термина, соответственно, чтобы у юзеров голосовавших тоже был эффект что они не голосовали

2 iNFerNo - вы решили проблемму?

Аватар пользователя andreystrelkov andreystrelkov 21 сентября 2013 в 19:39

Дошло
в экшене
1) Fetch users who have flagged a Термин таксономии - позволяет добраться до юзеров кто вообще флагил текущий контент
2)Loop - сформировать переменную со списком всех этих юзеров
2.1) Unflag a Термин таксономии - отфлагировать юзеров из списка от текущего контента

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

я выбирая Fetch users who have flagged a Содержание и Unflag a Содержание

при клике на флаг скидывается тупо другой флаг у текущего юзера которые сбрасывает флаги...

скриншот прилагается... (подскажите что не так???)