Как я могу определить правило выбора, которое будет использоваться для вариантов панелей в коде?
У меня есть собственный PHP-код, который я хотел бы использовать в качестве правила выбора примерно для 30 различных вариантов. В будущем мне, возможно, потребуется обновить этот код, поэтому вместо того, чтобы добавлять код 30 раз, по одному разу для каждого варианта, я бы предпочел добавить его в код через пользовательский модуль, чтобы мне было легче его поддерживать.
Есть ли крючок и т.д. для добавления правил выбора панелей?
3 answers
То, что вы хотите, внутренне называется "Плагин доступа".
Проверьте мой пример на Как создать новый плагин Ctools?.
Преимущество этого подхода в том, что вы можете избавиться от злого оценки.
Вы можете добавить правила выбора панелей.
Однако в вашем случае вы пытались просто вызвать функцию модуля вместо этого в своем PHP-коде для правила выбора?
Например, вызовите функцию, определенную в модуле:
return my_module_selection_rule('foo');
Вместо всего исходного кода там.
Таким образом, он может быть обновлен один раз в кодовой базе модуля.
Я часто использую эту технику для просмотра кода обработки контекстного фильтра php.
При желании см.
-
panels/plugins/task_handlers/panel_context.inc
Для определения плагина правил выбора по умолчанию. и
Для функции построителя форм по умолчанию для правил выбора.
Вы можете сделать это, вызвав функцию в своем пользовательском модуле. Допустим, функция - это checkCondition(), поэтому у вас будет код для правил выбора, возвращающий checkCondition(); и в функции вы можете установить свое условие, чтобы возвращать true или false.
Вы также можете сделать это для своей панели содержимого, добавив в нее правило видимости. Используйте для этого php-код и вызовите для него функцию checkCondition().