Как ограничить блок, помещенный в файл ветки через функцию темы предварительной обработки, скорее ограничить определенными страницами в типе контента? - PullRequest
0 голосов
/ 02 ноября 2019

Я создал пользовательский блок, хотя Drupal Admin упоминает ограничения страниц (показывать только на перечисленных страницах), и включил этот блок программно в файл ветки узла, но этот блок отображается на всех страницах узла, а не только на упомянутых страницах. ,Как ограничить этот блок отображением только на запрещенных страницах через кодирование?

Я уже ограничил страницы в блоке (созданные через интерфейс администратора), но блок отображается независимо от ограничения страниц на всех страницах узла.

// Код в файле .theme,который работает независимо от страниц, указанных в настройках конфигурации для «показывать только на перечисленных страницах»:

function my_sitedesigntheme_theme_preprocess_node(&$variables) {
    $block = Drupal\block_content\Entity\BlockContent::load(31);
    $variables['my_block_data'] = \Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block);
}

// Код в файле ветки:

{{ my_block_data }}

Блок должен отображаться (которыйуже отображается), но только на перечисленных страницах в настройках конфигурации пользовательских блоков.

1 Ответ

0 голосов
/ 04 ноября 2019

Когда вы строите блок с \Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block) , он игнорирует конфигурации (например, страницы, которые вы хотите, чтобы блок показывался) . Таким образом, этот путь не является правильным.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...