Програмне створення і увімкнення відображень (view mode) для типів матеріалів (сутностей)
Надіслано Animan в Птн, 2016/09/09 - 00:22
Вирішив написати рішення по такій проблемі, як програмно додати свої відображення (або view mode ) в кастомному модулі. Нам потрібно буде два хука: hook_entity_info_alter() і hook_install() 1.
Якщо ви новачок в Drupal і хочете більш близько познайомитись з архітектурою CMS, то для вас постане питання "Де хоститись?", "Який сервер брати?". Один з таких хостингів "СітіХост", який пропонує послуги vds, vps та віртуального сервера.
Перший хук випористовуємо в файлі інсталяції модуля, в моєму випадку це my_module.install:
<?php /** * @file * Contains installation functions for the My module. */ /** * Implements hook_install(). */ function my_module_install() { // Вмикає відображення для типу матеріалу "my_type" $config = field_bundle_settings('node', 'my_type'); // Отримуємо конфігурацію типу матеріалу "my_type" $config['view_modes']['top']['custom_settings'] = TRUE; // Вмикаємо відображення $config['view_modes']['similar']['custom_settings'] = TRUE; field_bundle_settings('node', 'my_type', $config); // Зберігаємо налаштування }
my_type - машинне ім’я типу матеріалу
Далі нам немобхідно відкрити сам файл модуля і визначити нові відображення. В моєму випадку це my_module.module:
<?php /** * @file * Main module of site. */ /** * Implements hook_entity_info_alter(). */ function my_module_entity_info_alter(&$entity_info) { 'label' => t('Top'), // Назва при редагуванні типу матеріалу на сторінці відображення 'custom settings' => FALSE, // Якщо TRUE то увімкнено для всіх типів матеріалів ); 'label' => t('Similar'), 'custom settings' => FALSE, ); }
top і similar це машинне ім’я відображення
Якщо у вас виникають якісь питання задавайте їх в коментарях.
Також замість хуку hook_install() ви можете використати альтернативні: hook_update(), hook_enable() ↩︎
Останні коментарі