xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Способ подменить значение текстового поля 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
Похожие записи

Комментарии RSS

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

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

неправда

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании