При обновлении Drupal 8.9 на Drupal 9.5.11 получено сообщение о несовместимости ряда модулей, а также о несовместимости установленных тем. Вместе с тем, вся визуальная часть сайта работает на этих темах. С помощью манипуляций в файлах "название_темы.info.yml", а именно добавление строки "core_version_requirement: ^9", обновление завершилось, административная панель работает, вместе с тем, при попытки перейти на индексную страницу сайта получаю 500 ошибку, видимо из-за несоответствие темы новой версии Drupal. Подскажите есть ли возможность каким-либо способом сделать тему совместимой с 9 версией Drupal.
Комментарии
Открывать лог, смотреть конкретную причину 500 ошибки, исправлять, пробовать снова.
журнал смотреть по пути ".../admin/reports/dblog" ???
Нет, речь не о журнале Друпала, а о журнале PHP. Это файл, который может называться error_log, а может и по-другому в зависимости от настроек Вашего окружения.
посмотрите и запостите полное сообщение об ошибке.
можно посмотреть в файле ошибок php или отдать команду drush ws
Быдлокодерский вариант. Если чтение журнала - темный лес.
Удаляем из темы сначала файлы mytheme.theme, mytheme.libraries.yml потом папку templates.
при каждом удалении смотрим на проблемную страницу. Т.обр. можно найти проблемный файл.
Делать это надо естественно на тестовой версии сайта, т.к. блоки могут растеряться при удалении файлов типа page.html.twig. Надеюсь обновляетесь тоже не на продакшене.
конечно не на продакшене, если честно первый раз столкнулся с Друпалом, делал все по мануалу с официального сайта
если первый раз - конечно многое может не получаться.
А в другой теме оформления работает? В claro например?
В claro загружается заголовок, а сам контент не отображается
Контент может быть в шаблон вшитым. Скорей всего не сам контент а его программный вывод. Может угадаю если сайт покажете.
я правил темы ручками.
проследите чтоб в info.yml было
core_version_requirement: ^9 || ^10
А можно поподробней, что и в каком порядке править, info.yml подправлено
Почему вы игнорируете предложения посмотреть логи?
PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 4294967304 bytes) in ....../web/core/lib/Drupal/Core/Theme/ThemeInitialization.php on line 117, что делать?
Ого, 4 гигабайта мало!
Смотрим в файл /web/core/lib/Drupal/Core/Theme/ThemeInitialization.php . Строка 117 находится в цикле поиска родителей данной темы:
$base_themes = [];
$ancestor = $theme_name;
while ($ancestor && isset($themes[$ancestor]->base_theme)) {
$ancestor = $themes[$ancestor]->base_theme;
if (!$this->themeHandler->themeExists($ancestor)) {
throw new MissingThemeDependencyException(sprintf('Base theme %s has not been installed.', $ancestor), $ancestor);
}
$base_themes[] = $themes[$ancestor];
}
Первое, что приходит в голову - тема объявила своим родителем самоё себя, цикл становится бесконечным и продолжается до полного истощения памяти.
Файл .info.yml Вашей темы можете показать?
А на странице темы на drupal.org точно нет патча, решающего эту проблему? Это и модулей касается.
тема кастомная
Тогда этим должен заниматься разработчик. Общий алгоритм такой: находим в логе PHP ошибку. Сначала пробуем ее исправить по ленивому варианту: ищем эту ошибку в issues Друпала, и, если кто-то в других модулях/темах с этим уже сталкивался и починил, то копируем их решение. Если по ленивому не получается, то разбираемся самостоятельно по документации Друпала что поменялось в API и как это делается теперь. И так ошибка за ошибкой, пока не исправим все.