TMGMT переводит поле view_mode, объявленное плагином menu_link_extras

Поля, определенные модулями, не попадают в конфиг файлы сайта, и их не получается настроить привычным способом. В данном случае, требуется как то указать TMGMT модулю, что не нужно переводить поле view_mode.

Чтобы предотвратить проблему, можно воспользоваться зацепкой, предоставляемой tmgmt_content — hook_tmgmt_translatable_fields_alter. Пример реализации:

Но обычно это половина проблемы, т.к. исправлять это начинают уже после того, как tmgmt был использован для перевода пунктов меню, заодно и переведя значения поля view_mode.

Проявляется проблема при попытке рендеринга меню в виде Illegal mix of collations ошибки базы данных (например):

Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (ascii_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation ‘=’: SELECT «name», «data» FROM «config» WHERE «collection» = :collection AND «name» IN ( :names__0 ); Array ( [:collection] => [:names__0] => core.entity_view_display.menu_link_content.main.par défaut ) in Drupal\Core\Config\DatabaseStorage->readMultiple() (line 111 of core/lib/Drupal/Core/Config/DatabaseStorage.php).

Придется собрать (агрегировать) все переводы значения view_mode (используете шаблон):

А потом написать HOOK_update_N для вашего модуля, чтобы исправить переведенные значения на изначальные (шаблон):

Можно обойтись и без хука — сделать это вручную, через drush sqlq или используя интерфейс базы данных. Но если исправлять нужно в нескольких базах, то HOOK будет удобнее.

Мало букафф? Читайте есчо !

Модификация тела письма перед отправкой в Drupal

Июнь 9, 2023 г.

Рассмотрим два варианта, как зацепиться к отправляемым письмам и внести туда свои изменения. Первый вариант заключается в прямом изменении тела письма перед отправкой. Для этого мы реализуем hook_mail_alter(&message). MAIL ALTER хук Переменная ...

Читать

Вытаскиваем токен URL картинки из медиа entity

Июль 12, 2024 г.

Медиа entity удобна для использования, но если это единственное поле изображения в статье, то как вытащить URL картинки, например чтобы заполнить шаблоны metatag? К примеру, в вашей статье есть медиа поле - field_image, и настройки разрешают подключать ...

Читать

Получить код оригинального языка сущности в Drupal

Октябрь 18, 2023 г.

Сущность возвращает язык в контексте выбранного языка, но иногда нужно получить оригинальный язык node или другой entity. Вот так выглядит запрос в контексте: [crayon-6a05b077d3ca4391825790/] А так можно получить код языка оригинальной версии ...

Читать

Загрузка файла через форму в Drupal

Май 19, 2023 г.

Посмотрим как получить непосредственный доступ к файлу без загрузки файла в хранилище, при его загрузке в поле типа "file" Form API. Много гайдов посвящено тому как использовать поле managed_file, а для unmanaged случая считается, что разработчик ...

Читать
 

Комментарии к «TMGMT переводит поле view_mode, объявленное плагином menu_link_extras»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: