Пользовательские блоки не отображаются для анонимных пользователей


Недавно я развернул обновление для Drupal 8.6.3 с версии 8.6.2 на нашем управляемом веб-хостинге для Drupal (Pantheon).

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

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

Я попробовал несколько расширенных шагов по устранению неполадок, чтобы исправить ошибку. Вот они, в более или менее том порядке, в котором я их пробовал:

  • Я создал новые пользовательские блоки (используя тип "базовый блок") в области нижнего колонтитула. Для этих новых блоков я оставил их для отображения заголовка. Содержимое новых пользовательских блоков не было отображено для анонимных пользователей, но заголовок блока был отображен. Для дальнейшего тестирования я отредактировал существующие пользовательские блоки в области нижнего колонтитула, чтобы отобразить заголовок. Отображается заголовок, но не содержимое. Это говорит мне о том, что Drupal знает о пользовательских блоках в регионе, но не отображает их содержимое для анонимных пользователей.

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

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

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

Я обнаружил ряд проблем, связанных с обновлением с 8.3.x до 8.5.x, и некоторые крючки обновления не запущены. Мы немного отстали в обновлениях и обновились с 8.5.6 до 8.6.2 около месяца назад, а затем до 8.6.3 прошлой ночью. Поэтому я не думал, что это применимо к моей ситуации, но я посмотрел на их исправления и попробовал их, если мог, в любом случае.

Когда я посмотрел на базу данных, все содержимое моего блока и статусы версий уже имели значение 1. Ради тестирования я все равно сделал обновление. Все еще никаких блоков.

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

Это, по-видимому, связано с крючками обновления схемы для не выполненных ревизий блоков. Для устранения неполадок я установил уровень ревизии block_content на 0, чтобы запустить повторный запуск всех крючков обновления. Это не решило проблему.

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

Итак, у моего сайта серьезная проблема, и это как бы портит мой отпуск. Любая помощь будет признательна!

Редактировать Мы откатили наш сайт до версии 8.6.2, восстановив его из резервной копии. пользовательские блоки все еще не отображаются. Итак, похоже, что обновление ядра не было причина проблемы.

Если кто-нибудь знает, с чего начать добавление кода отладки в ядро для локальной отладки, пожалуйста, свяжитесь с нами.

Редактировать 2 Я воссоздал проблему как на своем домашнем, так и на рабочем компьютерах.

Редактировать 3 Как было предложено в двух отдельных комментариях, я попытался переключить тему на Bartik, а также отключить оба модуля кэша страниц (и впоследствии очистить кэш). После создания и размещения совершенно нового пользовательского блока (для чистого тест) с заголовком, отображаемым в двух отдельных разделах страницы, я по-прежнему получаю то же поведение: для зарегистрированных пользователей я вижу заголовок и содержимое пользовательского блока. Но для анонимных пользователей я вижу только название блока.

Редактировать 5 По предложению Кенорба я посмотрел, не запускаем ли мы какие-либо модули разрешений блоков. Мы запускаем block_content_permission и block_region_permission (однако мы не запускаем модуль block_access). Я просмотрел их, и они, похоже, предоставляют разрешения только для администрирование и редактирование блоков. Было одно разрешение, которое выглядело уместным - View restricted block content. Я включил его для анонимного пользователя, но это не решило проблему. Чтобы протестировать более надежно, я отключил оба этих модуля на своем локальном компьютере, и снова никаких исправлений.

Отредактируйте 6 относительно дополнительных предложений: updb был запущен. Я протестировал это на новом локальном бэкпорте, No database updates required. Формат текстового фильтра для блоков является Full HTML.

Редактировать 7 re: Видимость блокировки: похоже, что нет будут ли какие-либо ограничения на проблемные блоки. (Кроме того, когда я тестирую, добавляя новые пользовательские блоки, я не добавляю к ним никаких ограничений, и их заголовок все равно отображается). Это скриншот: enter image description here

Редактировать 8 Я также попробовал патч, снова на новом свежем бэкпорте, который предложил кенорб:

$ git apply -vv 2997898-21.patch
Checking patch core/modules/block_content/block_content.install...
Applied patch core/modules/block_content/block_content.install cleanly.

$ drush @local.ccad updb
The following updates are pending:

block_content module :
  8601 -   Set 'reusable' field to '1' where it is NULL.

Do you wish to run all pending updates? (y/n): y
Performing block_content_update_8601                         

Но, к сожалению, опять не повезло: (

Author: user1359, 2018-11-21

1 answers

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

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

 4
Author: user1359, 2018-11-29 20:54:22