Drupal → Изменить значение поля в Views

17.06.2015

Способ подменить значение текстового поля field_myfield в представлении myview:

/**
 * Implements hook_views_pre_render().
 */
function hook_views_pre_render(&$view) {
  if ($view->name == 'myview') {
    foreach ($view->result as &$row) {
      $row->field_myfield[0]['rendered']['#markup'] = $row->field_myfield[0]['rendered']['#markup'] ? t('Yes') : t('No');
    }
  }
}

Если в представление будут добавлены два одинаковых поля, то значение поменяется у обоих.

Вариант с препроцессом:

/**
 * Preprocess vars for views-view-field.tpl.php.
 */
function hook_preprocess_views_view_field(&$vars) {
  if ($vars['view']->name == 'myview' && $vars['field']->options['id'] == 'field_myfield') {
    $vars['output'] = $vars['output'] ? t('Yes') : t('No');
    $vars['field']->last_render = $vars['output'];
  }
}
Написанное актуально для
Views 3
Похожие записи

Комментарии

Андрей
22.06.2015, 12:53

При проверке вьюхи:
... if ($view->name == 'myview') { ...
Я бы добавил еще проверку на дисплей, обычно во вьюхе есть страничка / блок / etc.
... if ($view->name == 'myview' && $view->current_display == 'myview_display') { ...

emzzypost
30.06.2015, 11:42

Замечу, что hook_preprocess_views_view_field вызывается, только если в теме создан теплейт для поля.

а где мне взять имя поля и вьюхи?

Добавить комментарий