Рейтинг:0

Примечание: Неопределенный индекс: поставщик в *_preprocess_block()

флаг eg

Я нахожусь в процессе обновления сайта до Drupal 9. Наконец-то у меня установлена ​​версия 9.2.0, но я начал видеть очень большое количество уведомлений, которые соответствуют шаблону:

Примечание: Неопределенный индекс: провайдер в block_theme_suggestions_block() (строка 203 core/modules/block/block.module).

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

Вполне может быть, что это один из пользовательских блоков на этом сайте, но я сравнил их с документацией D9 и не вижу ничего плохого. Я также попытался очистить кеш веток.

Обновлять: Я поставил точку останова в том месте, где ошибка. Элемент в массиве переменных. Значение #plugin_id просто «сломано», а содержимое представляет собой TranslatableMarkup со значением «Этот блок сломан или отсутствует. Возможно, вам не хватает контента или вам может потребоваться включить исходный модуль».

Итак, я собираюсь попробовать совет в Как исправить сломанный или отсутствующий блок?

флаг cn
Вы пытались удалить модуль (модули), которые предоставляют пользовательские блоки? Это быстро скажет вам, являются ли эти блоки проблемой или нет.
John Brandenburg avatar
флаг eg
Отключение модулей не помогло. Я пытаюсь найти, где установлено это значение «поставщика», но это оказывается сложно. У меня есть некоторые дополнительные детали, которые я могу добавить к ОП.
Рейтинг:4
флаг eg

Я понял. Я использовал модуль twig_tweak и использовал друпал_блок() размещать блоки в шаблонах вручную. В рамках обновления модуля twig_tweak вам необходимо заменить их вызовами друпал_сущность().

Так, например, если вы позвонили:

drupal_block('footer_meta_menu')

Тогда это становится:

drupal_entity('блок', 'footer_meta_menu')

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

drupal_entity('блок', 'footer_meta_menu', check_access=false)

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.