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 будет удобнее.

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

Attempting to re-run cron while it is already running.

Июнь 3, 2025 г.

Попытка запустить cron параллельно с запущенным кроном не увенчается успехом, так как Drupal использует блокировку. Но иногда, из-за ошибок во время исполнения, блокировка не снимается. Что делать, если блокировка не была снята штатно? На самом ...

Читать

Drupal checkbox field form API

Март 18, 2024 г.

Drupal интерпретирует чекбокс как integer. Это вызывает некоторое непонимание при работе с полем через Drupal form API. Давайте рассмотрим пример объявления и чтения данных поля формы. Объявление checkbox поля в вашей форме: [crayon-6af10f071388f025770690/] ...

Читать

Создание администратора через drush, Drupal 9

Сентябрь 22, 2023 г.

Полезные команды для создания пользователя с админ правами, используя drush. Для начала нужно создать пользователя (пусть это будет yury): [crayon-6af10f0713a82294649455/] Далее назначим ему роль администратора: [crayon-6af10f0713a88651294491/] ...

Читать

Получить список типов товаров в Drupal Commerce

Июль 23, 2023 г.

В терминологии Drupal, типы товаров это - бандлы (bundle) сущности commerce_product. Получить их список можно вот так: [crayon-6af10f0713b66314780850/] Как результат, в $product_types вы получите массив типов товаров, где ключом является ...

Читать
 

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

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



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