Drupal — это популярная система управления контентом (CMS), которая предоставляет различные функции для создания и управления веб-сайтами. Одним из ключевых аспектов Drupal являются view modes (режимы отображения), которые позволяют настраивать способы отображения контента на сайте.

В настройках Manage display вы можете встретить два специальных view modes: «Search index» и «Search result highlighting input». Давайте подробнее рассмотрим каждый из них:

1. View mode «Search index»

Режим отображения «Search index» (индексирование поиска) используется для представления контента, который будет использоваться поисковыми системами для индексации и поиска на вашем сайте. Этот режим часто используется для отображения значимых полей, таких как заголовки, описания, ключевые слова и другие важные данные для поисковой оптимизации (SEO).

Пример программного кода, использующего режим отображения «Search index»:


// Определение поля заголовка в представлении "Search index"
function mymodule_entity_search_index_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
  if ($display->getTargetEntityTypeId() === 'node') {
    $build['title_field']['#weight'] = -100;
  }
}

2. View mode «Search result highlighting input»

Режим отображения «Search result highlighting input» (подсвечивание результатов поиска) используется для отображения контента, специально отформатированного для выделения найденных результатов поиска на вашем сайте. Этот режим отображения помогает пользователю быстро и удобно найти искомые данные на странице.

Пример программного кода, использующего режим отображения «Search result highlighting input»:


// Использование темизации для отображения результатов поиска с подсветкой
function mymodule_preprocess_search_results(array &$variables) {
  foreach ($variables['results'] as &$result) {
    $result['rendered']['#view_mode'] = 'search_result_highlighting_input';
  }
}

Дополнительные вопросы:

1. Как создать собственный view mode в Drupal?

Для создания собственного view mode в Drupal вам необходимо выполнить следующие шаги:

  1. Перейдите на страницу Structure — Display modes — View modes в административной панели Drupal.
  2. Нажмите на кнопку «Add view mode» (Добавить режим отображения).
  3. Укажите название и машинное имя для нового view mode.
  4. Нажмите кнопку «Save» (Сохранить).

2. Как скрыть определенное поле в заданном режиме отображения?

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


// Использование темизации для скрытия поля в заданном режиме отображения
function mymodule_preprocess_entity(&$variables) {
  $entity = $variables['elements']['#entity'];
  
  if ($variables['elements']['#view_mode'] === 'my_custom_view_mode') {
    unset($variables['content']['field_to_hide']);
  }
}

3. Как добавить новое поле в заданный view mode программно?

Для добавления нового поля в заданный view mode программно в Drupal вам понадобится использовать хук hook_entity_extra_field_info(). Пример программного кода:


// Добавление нового поля в заданный view mode программно
function mymodule_entity_extra_field_info() {
  $extra = [];
  
  $extra['node']['my_field_machine_name'] = [
    'label' => t('My Field Label'),
    'description' => t('My Field Description'),
    'weight' => 0,
    'bundle' => [
      'node_type' => 'my_content_type',
    ],
    'view_modes' => [
      'my_view_mode',
    ],
  ];
  
  return $extra;
}