Отключить правило, которое вызывает цикл перенаправления


Я создал правило для зарегистрированных пользователей, согласно которому, если они переходят на домашнюю страницу, оно перенаправляет их на другую страницу. Домашняя страница должна отличаться для анонимных и аутентифицированных пользователей.

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

Я быстро заглянул в базу данных и увидел таблицу rules_rules. Однако данные хранятся в виде большого двоичного объекта, поэтому я не могу их редактировать. Кроме удаления моих правил, что я могу сделать, чтобы отключить его?

 4
Author: googletorp, 2011-04-12

4 answers

У вас есть несколько вариантов.

  • Вы можете попробовать отредактировать данные, десериализовав их с помощью PHP, и попытаться извлечь из них какой-то смысл. Скорее всего, существует статус, который равен либо 1, либо 0.
  • Вы можете полностью удалить правило из базы данных.
  • Вы можете временно изменить rules_invoke_event (rules.module строка 249 для 1.4), если вы прокомментируете вызов call_user_func_array, на сайте не следует вызывать никаких правил.

Любой из них должен сработать, лично я бы выбрал последний если бы у меня был доступ на запись к файлам правил.

 2
Author: googletorp, 2011-04-12 20:29:58

В Правилах 7.x-2.6:

  • В таблице rules_config установите активный столбец равным 0 для проблемного правила
  • Очистить/Усечь таблицу cache_rules
 1
Author: Hans Rossel, 2014-03-31 19:07:49

Они сделали так, чтобы я вернул перезагрузку в одном из своих проектов drupal 6.

  1. вошел в систему с помощью ssh на терминал.
  2. вошел в базу данных.
  3. выбранная база данных.
  4. перейти к таблице правил_рулей.
  5. написанный sql-запрос на удаление правила привязки.
 0
Author: Jaywant Topno, 2015-06-20 05:34:53

Модуль разработки модуль имеет отличную настройку для этого. Установите модуль разработки и посетите devel/settings, включите опцию Display redirection page.

Как сказано в описании

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

Вы можете посетить промежуточную страницу, несмотря на перенаправление.

 0
Author: Gokul N K, 2015-06-20 05:49:15