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


У меня есть собственный PHP-код, который я хотел бы использовать в качестве правила выбора примерно для 30 различных вариантов. В будущем мне, возможно, потребуется обновить этот код, поэтому вместо того, чтобы добавлять код 30 раз, по одному разу для каждого варианта, я бы предпочел добавить его в код через пользовательский модуль, чтобы мне было легче его поддерживать.

Есть ли крючок и т.д. для добавления правил выбора панелей?

 3
Author: Patrick Kenny, 2013-01-28

3 answers

То, что вы хотите, внутренне называется "Плагин доступа".

Проверьте мой пример на Как создать новый плагин Ctools?.

Преимущество этого подхода в том, что вы можете избавиться от злого оценки.

 3
Author: Letharion, 2017-04-13 12:46:55

Вы можете добавить правила выбора панелей.

Однако в вашем случае вы пытались просто вызвать функцию модуля вместо этого в своем PHP-коде для правила выбора?

Например, вызовите функцию, определенную в модуле:

return my_module_selection_rule('foo');

Вместо всего исходного кода там.

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

Я часто использую эту технику для просмотра кода обработки контекстного фильтра php.

При желании см.

  • panels/plugins/task_handlers/panel_context.inc

Для определения плагина правил выбора по умолчанию. и

Для функции построителя форм по умолчанию для правил выбора.

 4
Author: David Thomas, 2013-01-28 09:50:17

Вы можете сделать это, вызвав функцию в своем пользовательском модуле. Допустим, функция - это checkCondition(), поэтому у вас будет код для правил выбора, возвращающий checkCondition(); и в функции вы можете установить свое условие, чтобы возвращать true или false.

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

 0
Author: Parwan, 2013-01-28 10:23:15