Как русифицировать шаблон Drupal 8 и обновить ядро?
Здравстуйте! Поручили создать проект по недвижимости. Заказчик перебрал кучу CMS и кучу шаблонов, как платных, так и бесплатных, но везде его что-то не устраивало. Наконец сошлись на том, что нужен шаблон Hostel от Ordasoft на версии Drupal 8.2.7. Но вот проблема, с этим движком я практически не знаком. Но благо, что в дистрибутиве шаблона был QuickStart Package, который я с легкостью развернул. Но все бы ничего но вот столкнулся с несколькими неожиданными проблемами.
1. Хотел сразу обновить до актуальной версии, но сайт "лёг" с белым экраном, и больше не включился. Начал накатывать обновления ядра постепенно, но обновиться выше 8.4.8 больше не смог, при обновлении до версии 8.5.0 сайт снова падал. При этом режим обслуживания был включен и кэш почищен. Какова должна быть последовательность версий, для успешного обновления? Модули по одному обновить удалось через админку. Возможно как-то через Composer можно безболезненно произвести обновление, или через Drush.
2. Вторая проблема возникла при добавлении русской Локализации. Модули Multilingual присутствуют, чекбоксы на них стоя́т, но они затенены, и отключить их никак нельзя. При загрузке Локализации, процесс доходит до 78%, и вываливается с пятисотой ошибкой. При входе в модуль Chosen выпадает белый экран и при входе в раздел User interface translation тоже войти невозможно, тот же белый экран. Существует ли возможность принудительного отключения, и переустановки модулей Multilingual, для возвращения ему полной функциональности, и возможности ручного импорта локализации? Очевидно и модуль Chosen тоже как-то связан с локализацией.
3. То же хотелось бы сказать и о ручной локализации модулей. Возможно ли их как-то русифицировать в отдельности от ядра системы? Просто казалось бы, вполне рядовые вещи, имеются в виду обновление движка, и его локализация, а столько сложности в реализации. Возможно я не очень большой знаток CMS, но на других системах, чтобы запилить сайт, достаточно было трех-четырех вечеров, а тут я совсем растерялся. Прошу не кидать тапками. Приму любой совет, и конструктивную критику. Очень нужна помощь. Система хорошая, интересная, необычная, но незнакомая.
P.S. Прошу к другим CMS не отсылать... Спасибо всем кто откликнется...Заранее.
Если друпал установлен вручную, то обновлять по старинке - удалить папку core, залить новую, запустить update.php. Если установлен с помощью composer, то достаточно выполнить composer update drupal/core.
Модули в восьмом друпале отключать нельзя, можно только деинсталировать на странице admin/modules/uninstall. Если модуль имеет зависимости, то сначала надо деинсталировать эти зависимости.
Что значит "в отдельности от ядра"? Все строки хранятся в бд и не имеют разбития на "ядро" и "модуль". Переводить вручную можно на странице admin/config/regional/translate.
Причину всех белых страниц можно найти в логах ошибок. Каждую ошибку надо решать индивидуально, в большинстве случаев решение есть в issues на drupal.org.
Ну и ни за три вечера, ни за три месяца вы восьмой друпал не осилите. Это CMS для программистов, чтобы вам не говорили.
С drupal 8 работайте только через композер, установка, обновление, удаление. Тогда ошибки можно решить в пару команд.
1. Ставите - composer create-project drupal-composer/drupal-project:8.x-dev . --no-interaction
2. В корневой папке, добавляете composer require drupal/theme_name или plugin_name
3. Обновляете composer update
4. Далее drush updb -y и drush entity-updates
5. Чистите кеш drush cr
По локализации
1. Ошибка возможно из за необходимости обновить зависимости через композер
2. Модули переводятся через Языки - Перевод интерфейса, если в модулях текст не поддерживает перевод вида {{ field|t }} то поле вы не сможете перевести. Если только костыль типа js.
Здравствуйте! Спасибо вам огромное за подсказку. Сегодня уже более осмысленно попытался снова произвести установку шаблона начисто.
1. Поставил шаблон из QuickStart Package.
2. Через Composer выполнил composer update.
3. Зашел в админ-панель, почистил кэш, попытался пройти по пути sitename.ru/admin/config/regional/translate, выпала ошибка "The website encountered an unexpected error. Please try again later."
4. Зашел в раздел sitename.ru/admin/reports/dblog там ошибка:
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[HY000]: General error: 1364 Field 'lid' doesn't have a default value: INSERT INTO {locales_source} (source, context, version) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2); Array ( [:db_insert_placeholder_0] => Hide description [:db_insert_placeholder_1] => [:db_insert_placeholder_2] => none ) in Drupal\locale\StringBase->save() (line 183 of F:\WebServer\OSPanel\domains\sitename.ru\core\modules\locale\src\StringBase.php).
5. Проверил модуль Multilingual чекбоксы не отключаются
Кстати, проверил в модулях, в разделе Uninstall, Языковые настройки удалить нельзя, они неактивны.
По поводу ошибки 1364 пока нашел только вот это: https://www.drupal.org/forum/support/upgrading-dru...
Больше к сожалению ничего нет.
И вот такой вопрос: Имеют ли какую-то несовместимость шаблоны версий Drupal 8.2.х и 8.5.х. Хотя, как говорит автор поста на Drupal.org, после отключения мультиязыковых модулей, без проблем прошло обновление до 8.5.1.