2016-09-10 1 views
1

Я новичок в Drupal, я хочу передать URL-адрес домена для использования в шаблоне menu.html.twig. Как я могу это сделать. На самом деле у меня есть меню из 5 доменов, все указывающие на тот же экземпляр Drupal. На основе имени домена я хочу сделать меню активным.Drupal 8 как передать значение шаблону шаблона меню

Благодаря

ответ

2

Продление ответа Artreaktors, так как OP не слишком хорошо знаком с Drupal.

Создайте модуль с любым именем, которое вы хотите. Если вам нужна помощь, взгляните на Drupal Console, это поможет вам сгустком.

Внутри папки вашего модуля вы найдете файл module_name.module.

Здесь вы будете добавлять код, указанный на Artreaktor:

function mymodule_preprocess_menu(&$vars) { 
    $domain = \Drupal::service('domain.negotiator')->getActiveDomain(); 
    $vars['domain'] = $domain->getUrl(); 
} 

MyModule здесь означает название вашего модуля. Не забудьте включить свой модуль и очистить кеш!

2

Вы можете сделать это в hook_preprocess_hook (& $ вары).

function mymodule_preprocess_menu(&$vars) { 
    $domain = \Drupal::service('domain.negotiator')->getActiveDomain(); 
    $vars['domain'] = $domain->getUrl(); 
} 

Теперь вы можете использовать переменную {{domain}} в своей ветке.

+0

Привет, Спасибо вам за поддержку. Я новичок в коде Drupal. Могу ли я добавить эту функцию в файл theme.inc ....? – user739350

+0

Используйте этот код либо в своей настраиваемой теме (mytheme.theme), либо в вашем модуле (mymodule.module). Вы должны заменить «mymodule» на реальное имя вашей темы или модуля. –