Пример вывода Views в вкладке материала типа article
:
-
Создаём представление с дисплеем Page и адресом
node/%/my-view
: -
В настройках пункта меню выбираем тип Menu tab и прописываем заголовок таба:
-
Добавляем контекстный фильтр по Content: nid с следующими настройками:
— When the filter value is not in the url = Show "Page not found"
— Specify validation criteria = Включить
— Validator = Content
— Content types = Article
Profit:
Если контекстный фильтр по nid не нужен, то вместо него можно использовать контекстный фильтр Global: Null.
Замечание: такой способ добавляет десятку лишних SQL запросов на страницах нод всех типов. Способ ограничить видимость вкладки программно:
/**
* Implements hook_menu_alter();
*/
function MODULENAME_menu_alter(&$items) {
if (isset($items['node/%/my-view'])) {
$items['node/%/clearance']['access callback'] = 'MODULENAME_tab_access';
}
}
/**
* Implements hook_module_implements_alter().
*/
function MODULENAME_module_implements_alter(&$implementations, $hook) {
if ($hook == 'menu_alter') {
$group = $implementations['MODULENAME'];
unset($implementations['MODULENAME']);
$implementations['MODULENAME'] = $group;
}
}
/**
* Tab access callback.
*/
function MODULENAME_tab_access() {
$node = node_load(arg(1));
if ($node->type == 'YOUR_NODE_TYPE') {
return call_user_func_array('views_access', func_get_args());
}
}
Опцию Specify validation criteria в контекстном фильтре нужно будет отключить.
Написанное актуально для
Views 3
Похожие записи
- Заменить страницу управления материалами на свой Views
- Рассылка списка новых материалов за день/неделю/месяц с помощью Simplenews и Rules (способ 2)
- Рассылка списка новых материалов за день/неделю/месяц с помощью Simplenews (способ 1)
- Вывести с помощью Views самое осбуждаемое за последнюю неделю
- Выводим ссылки на похожие материалы с помощью Views
Комментарии
"Гениально, Шеф!"
ушло в закладки. спасибо.
Супер!! Спасибо за статью.
Почему то хук не работает. я создал модуль и вставил код, заменил MODULENAME на имя модуля и YOUR_NODE_TYPE на имя машинное имя типа материала, но вкладки все равно во всех нодах. Что я мог не учесть ?
Добавить комментарий