Способ подменить значение текстового поля 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
Похожие записи
- Модуль Geofield Yandex Maps — ввод и вывод гео-информации на Яндекс.Картах 2.1
- Модуль Viewfield — представление Views как поле материала
- Модуль Node Reference View Formatter — выводим содержимое полей Node Reference с помощью Views
- Массовое редактирование полей материалов с помощью Views и Editable Fields
- Видео уроки от Lullabot.com
Комментарии
При проверке вьюхи:
... if ($view->name == 'myview') { ...
Я бы добавил еще проверку на дисплей, обычно во вьюхе есть страничка / блок / etc.
... if ($view->name == 'myview' && $view->current_display == 'myview_display') { ...
Замечу, что hook_preprocess_views_view_field вызывается, только если в теме создан теплейт для поля.
неправда
а где мне взять имя поля и вьюхи?
Добавить комментарий