У меня есть модуль фильтра Drupal, выход которого я бы хотел изменить, в зависимости от того, где будет отображаться вывод. В частности, я хочу, чтобы фильтр дал полный вывод для узлов, но обрезал контент для блоков.Как изменить поведение входного фильтра Drupal на основе местоположения вывода
0
A
ответ
1
Я не думаю, что это было бы возможно. Достаточно сложно понять, в каком контексте что-то отображается. Это выполнимо, но довольно сложно сделать код самостоятельно. Однако, как работает система фильтров, я не думаю, что это возможно в фильтре для определения контекста отфильтрованного текста. Это просто не сделано для чего-то подобного.
0
Я ОП (но только что зарегистрировал учетную запись).
Мне удалось найти решение/обходной путь. Вот что я сделал:
- Создайте block.tpl.php в моем модуле, который является копией из system/block.tpl.php, с константой, добавленной вверху.
- Поместите свой файл шаблона во главе темы реестра с помощью hook_theme_registry_alter():
function hook_theme_registry_alter(&$theme_registry) { // using our own block.tpl.php file. $theme_registry['block']['template'] = 'block'; $theme_registry['block']['path'] = drupal_get_path('module', 'module_name'); $theme_registry['block']['type'] = 'module'; $theme_registry['block']['theme path'] = drupal_get_path('module', 'module_name'); $theme_registry['block']['theme paths'] = Array(); }
- Проверено на константу при построении выходного фильтра, изменяя по мере необходимости.
- Празднование результата.
Собственно, это не работает. Кроме того, он уничтожил КАЖДЫЙ блок, а не только те, где мой фильтр выполнял свою работу ... – Jovean