Всем привет, столкнулся с проблемой применения хука на страницах вида:
hook_preprocess_page__user__%
а также
hook_preprocess_page__node__%
при использовании такого варианта выходит ошибка:
«ParseError: syntax error, unexpected '%', expecting '(' in Drupal\Core\Extension\Extension->load()»
Как применить хук к такого вида страницам?
Заранее благодарю!
Комментарии
А что это за хук такой?
Вот здесь описание хука.
Он строится по принципу:
ИМЯТЕМЫ_preprocess_ИМЯШАБЛОНА.
На Ваших примерах:
Ну, вот, например, мне нужно вывести переменные на странице пользователя с uid 19,
я применяю хук:
<?phpfunction theme_preprocess_page__user__19(&$variables) {
kint($variables);}?>
на всех страницах вида page--user применяю хук:
<?phpfunction theme_preprocess_page__user(&$variables) {
kint($variables);}?>
У меня стоит задача применить хук строго на страницах вида - page--user--%.html.twig, ибо эта страница имеет отличный от page--user.html.twig шаблон.
Чтобы было понятней выкладываю имена своих шаблонов:
<!-- THEME HOOK: 'page' -->
<!-- FILE NAME SUGGESTIONS:
* page--user--19.html.twig
x page--user--%.html.twig
* page--user.html.twig
* page.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/zqz/templates/system/page--user--%.html.twig' -->
Хуки не применяются на страницах.
В хуке (в файле темы) Вы добавляете нужные переменные.
В шаблоне - выводите их, со всеми необходимыми проверками.
Если Вам нужно организовать специфический шаблон - используйте этот материал.