Вывод псевдо-поля при просмотре материала

В одном из прошлых постов писал о том, как добавить контент к ноде перед её выводом. В этом посте покажу, как это же можно сделать с помощью псевдо-полей (extra fields). Преимущества псевдо-полей в возможности их скрытия на странице Manage display или изменения порядка вывода (изменение веса).

Пример вывода автора материала:
/**
 * Implements hook_field_extra_fields().
 */
function mymodule_field_extra_fields() {
  return array(
    'node' => array(                           // Entity type
      'article' => array(                      // Bundle name
        'display' => array(                    // "display" or "form"
          'mymodule_author' => array(          // Field name
            'label' => t('Author'),            // Label
            'description' => t('Author name'), // Description
            'weight' => 0,                     // Default weight
          ),
        ),
      ),
    ),
  );
}
 
/**
 * Implements hook_node_view().
 */
function mymodule_node_view($node, $view_mode, $langcode) {
  $extra_fields = field_extra_fields_get_display('node', $node->type, $view_mode);
  if (isset($extra_fields['mymodule_author']) && $extra_fields['mymodule_author']['visible']) {
    $node->content['mymodule_author'] = array(
      '#markup' => '<b>Author</b>: ' . $node->name,
      '#weight' => $extra_fields['mymodule_author']['weight'],
    );
  }
}

Написанное актуально для
Drupal 7
Теги:
работа с нодами, работа с полями
Добавлено: 30 Июля 2018 08:06:01 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...