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']; } }
Комментарии
При проверке вьюхи:
... if ($view->name == 'myview') { ...
Я бы добавил еще проверку на дисплей, обычно во вьюхе есть страничка / блок / etc.
... if ($view->name == 'myview' && $view->current_display == 'myview_display') { ...
Замечу, что hook_preprocess_views_view_field вызывается, только если в теме создан теплейт для поля.
неправда
а где мне взять имя поля и вьюхи?
Оставить комментарий