문제

Drupal의 "저자에 대해"뷰 블록을 작성했습니다. 이것은 현재 노드의 크리터의 user_id에 연결되어 있으며, 이는 훌륭하게 작동합니다.

그러나 이제 견해를 특정 콘텐츠 유형으로 제한하는 방법을 알고 싶습니다. 나는 그것이 블로그에만 이야기를 보여주기를 원하지 않습니다. 나는 논쟁으로 그것을 시도했지만 지금까지 운이 없었습니다.

누구든지 나를 도울 수 있습니까?

도움이 되었습니까?

해결책

사용하는 것이 좋습니다 pathauto 유형 A 유형 A 공통 URL 접두사 (어쨌든 좋은 아이디어)를 제공하려면 간단한 블록 가시성 경로 제한을 사용할 수 있습니다. 예를 들어, 콘텐츠 유형 경로 패턴을 "기사/[제목]으로 설정 한 다음 블록 경로를 "기사/*"로 설정합니다.

다른 팁

아니요, View의 빌드 인 Argument Validator를 사용할 수 있습니다.

전. 사용자의 UID 값에 대한 견해를 어떻게 제한합니까?” 즉, 해당 콘텐츠를 소유 한 로그인 한 사용자 만 주어진 견해를 어떻게 볼 수 있는지

보기 인수 PHP Validator 코드는 다음과 같습니다.

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