Категория:
Опубликовано:

Как добавить ID строке представления

Views NID ID

Views - хорошая штука. Но иногда не хватает буквально капельки чуда для совершенства...

Например имеем представление - список товаров, или статей выведенных списком... И, ну вот, хочется сделать ссылку на часть представления в виде якоря, на определенный материал.

А нельзя... Только класс можно добавить, и то при выводе полями.

В этом посте рассмотрим как можно добавить ID ноды к строке Views.

Будем использовать стандартные методы темизации представления -- переопределение шаблона.

Смотрим нужный нам шаблон:

Информация Views

Нас интересует вывод строк, потому выберем "Стиль вывода".

На этом шаге можно скопировать название нашего будущего шаблона из списка подходящих, можно переопределить шаблон для всех представлений, для текущего или даже для отдельного дисплея. После выбора нужного шаблона создаем файл в папке "templates" Вашей темы с выбранным названием.

Шаблон товаров

Копируем код шаблона, и вставляем в наш файл (! не забываем про кодировку, должна быть UTF-8 без BOM).

Если Вы ничего до этого не изменяли код будет выглядеть примерно так:

<?php

/**
 * @file
 * Default simple view template to display a list of rows.
 *
 * @ingroup views_templates
 */
?>
  <?php if (!empty($title)): ?>
    <h3><?php print $title; ?></h3>
  <?php endif; ?>
  <?php foreach ($rows as $id => $row): ?>
    <div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"';  } ?>>
      <?php print $row; ?>
    </div>
  <?php endforeach; ?>

Нас интересует 14-я строчка, в которой добавляются классы для строк, её и будем править.

Для добавления ID материалов достаточно добавить следующий код перед добавлением классов:

id="nid-id-<?php print $view->result[$id]->nid; ?>"

Сохраняем шаблон, сбрасываем кеш и переопределяем шаблоны во Views:

Переопределение шаблонов Views

Сохраняем представление и наслаждаемся результатом. Теперь каждая строка представления будет иметь id типа "nid-id-[NID ноды]", и на этот блок можно будет давать ссылку:

 <a href="/view_page#nid-id-[NID ноды]">Ссылка на ноду в представлении</a>
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.
Добавить комментарий