Показывать представление только для определенного типа контента в Drupal

StackOverflow https://stackoverflow.com/questions/2206483

Вопрос

я создал блок просмотров "Об авторе" в Drupal.Это связано с идентификатором пользователя создателя текущего узла, который отлично работает.

Однако теперь я хотел бы знать, как ограничить просмотр определенными типами контента.Я не хочу, чтобы это показывалось в сюжете, только в блогах.Я пытался сделать это с помощью аргументов, но пока мне не везло.

Кто-нибудь может мне помочь?

Это было полезно?

Решение

Я рекомендую использовать путьавтоматический дать каждому узлу типа общий префикс URL-адреса (в любом случае хорошая идея), чтобы вы могли использовать простое ограничение пути видимости блока.Например, вы устанавливаете шаблон пути к типу контента «article/[title]», а затем устанавливаете путь к блоку «article/*».

Другие советы

нет, вы можете использовать встроенный в view валидатор аргументов.

бывший.Как вы ограничиваете просмотр значением uid пользователя? ” Это означает, как любой данный просмотр может быть виден только зарегистрированному пользователю, которому принадлежит этот контент.

Вот код PHP-валидатора аргументов Views.

global $user; return $argument[0] == $user->uid;

Просто создайте свое представление, перейдите на страницу конфигурации блока и используйте PHP для правил видимости блока.Чтобы показать блокировку только для определенных типов контента, используйте:

<?php
$match = FALSE;
$types = array('story' => 1, 'page' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  $node = node_load(array('nid' => $nid));
  $type = $node->type;
  if (isset($types[$type])) {
    $match = TRUE;
  }
}
return $match;
?>

Этот код взят с сайта drupal.org, Обзор-подход к блокировке видимости

Лучше:

<?php
$match = FALSE;
$types = array('story' => 1, 'page' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $nid = arg(1);
  $node = node_load($nid);
  $type = $node->type;
  if (isset($types[$type])) {
    $match = TRUE;
  }
}
return $match;
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top