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

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

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

Июль 12, 2024 г.

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

Читать

Генерация JWT токена в Drupal

Июль 30, 2023 г.

Модуль jwt реализует REST аутентификацию, настройку ключа и многое другое. Небольшой спиппет как сгенерировать и отправить jwt с собсвенной нагрузкой. Передадим токен, в котором полезной нагрузкой будет ID пользователя. А время жизни токена - 1 ...

Читать

Как получить код языка по умолчанию в Drupal

Июль 4, 2025 г.

В Drupal (начиная с версии 8 и выше, включая 10 и 11), чтобы получить код языка по умолчанию сайта (например, en, ru, fr), используйте следующий способ: [crayon-6895ec261c64f970712361/] Подробности запроса: \Drupal::languageManager() — обращение ...

Читать

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

Июль 23, 2023 г.

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

Читать
 

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

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



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