Шаблон для field и fields во вьюсе для Drupal 8

Опубликовано 2016.09.12 в разделе Drupal.

Информацию о шаблонах из интерфейса вьюса успешно выпилили(надеюсь не навсегда). Чтобы сделать шаблон для поля - добавьте следующий хук:
  1. function template_preprocess_views_view_field(&$vars) {
  2. $field_id = $vars['field']->options['id'];
  3. $views_name = $vars['view']->id();
  4. $display_name = $vars['view']->getDisplay()->display['id'];
  5. $vars['theme_hook_original'] = 'views_view_field__' . $views_name . '__' . $display_name . '__' . $field_id;
  6. }
для полей
  1. function template_preprocess_views_view_fields(&$vars) {
  2. $views_name = $vars['view']->id();

Views добавить group by для одного поля

Опубликовано 2016.01.11 в разделе Drupal.

В админке вьюсов группировка(называется агрегацией) отвратительная. Группирует все поля, а толку ноль. Уникализация выборки тоже не работает. Классическая ситуация. Вывод нескольких материалов(например блог) и одного приаттаченного материала к каждому блогу(через entity reference). И если к блогу привязано например 3 материала - то благодаря join в запросе это блог будет выведен трижды. Чтобы это побороть - нужно поальтерить запрос: /** * Implements hook_query_alter(). */ function mymodule_query_alter(QueryAlterableInterface $query) {

Агрегация views по заголовку материала

Опубликовано 2014.09.25 в разделе Drupal.

Сделать традиционный group by в запросе вьюса не так просто. Вьюс группирует все поля. Для отдельных полей в настройках агрегации можно задать тип "среднее", "максимум", "минимум" и так далее. А если нужно сгруппировать материалы по строке? Например по заголовку или строковому cck полю? Стандартная агрегация вьюса с этим не справится, по крайней мере я не смог этого сделать в интерфейсе представления. Поальтерить запрос вьюса через hook_views_query_alter тоже не получится. Придётся альтерить весь запрос.

Темизация шаблона views

Опубликовано 2011.11.22 в разделе Drupal.

Модуль Views-очень мощный инструмент разработчика Drupal. Он позволяет выводить различные поля материалов,связать их с автором, статистикой и многим другим. Можно также принимать аргументы прямо из адресной строки.

Обрезка текста средствами views

Опубликовано 2011.10.15 в разделе Drupal.

Модуль вьюс может очень аккуратно обрезать текст.Оставить html тэги, обрезать только целые слова и добавлять многоточие. Сейчас мы сделаем тоже самое программно. Естественно модуль вьюс должен быть включен.
  1. $str='Абстрактные классы используются для создания семейства объектов, обладающих единым интерфейсом. Также они используются, когда нужно запретить создание объекта некоторого класса.';
  2. $par['max_length']=30; //количество символов
  3. $par['word_boundary']=true; //обрезать только целые слова
  4. $par['ellipsis']=true; //добавить многоточие

Программный вывод views(вьюс)

Опубликовано 2011.09.27 в разделе Drupal.

Программно вывести вьюс в седьмом друпале можно так: Где первый аргумент функции views_embed_view -это имя вьюса,затем имя представления вьюса и далее аргумент, который я передаю вьюсу.
  1. print views_embed_view('slideshow_node','default', $node->vid);
или ещё вот так:
  1. $m_votings = views_get_view('og_nodes'); //загружаем вид
  2. $args[0] = $gid; //создаем список аргументов
  3. $m_votings->set_arguments($args); // устанавливаем аргументы
  4. print $m_votings->render('block_1'); //выводим нужное представление