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

Drupal → Программно добавить поле в представление

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

Программное добавление полей в представление articles с дисплеем page:

/**
 * Implements hook_views_pre_view().
 */
function MODULENAME_views_pre_view(&$view) {
  if ($view->name == 'articles' && $view->current_display == 'page') {
    // Добавление заголовка материала
    $view->add_item($view->current_display, 'field', 'node', 'title', array(
      'label' => 'Title',
    ), 'node_title');
 
    // Добавление поля типа Custom text
    $view->add_item($view->current_display, 'field', 'views', 'nothing', array(
      'label' => 'My custom field',
      'alter' => array('text' => 'My custom field text'),
      'element_class' => 'my-custom-field',
      'element_default_classes' => 0,
    ), 'my_custom_field');
  }
}
Написанное актуально для Views 3
Похожие записи

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

А как апишно удалить или скрыть views-поля?

А как заполнить теперь это поле значениями? Допусти в том же pre_render...

Здравствуйте. Спасибо за пример, пригодился. Возник вопрос. Как вместо текста "My custom field text" добавить отрендериную форму? "My custom field text" заменяю на переменную с отрендереной формой. С помощью print_r(); просматриваю массив, вижу, что форма в нем есть. Но на сайте теги формы INPUT, AREA фильтруются и не отображаются. Пробовал 'format' => 'full_html' указывать, без толку. Может с другим хуком пробовать или тут есть какая-то хитрость? Спасибо!

напишите свой field handler

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

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

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