2010-02-05 1 views
1

Drupal에서 "저자 정보"보기 블록을 빌드했습니다. 이것은 현재 노드의 작성자의 user_id에 링크되어 있습니다.Drupal의 특정 컨텐츠 유형에 대한보기 만 표시

그러나 이제 특정 콘텐츠 형식으로보기를 제한하는 방법을 알고 싶습니다. 블로그에 대해서만 이야기에 표시하고 싶지 않습니다. 나는 인수와 함께 그것을 해보려고 노력했다. 그러나 나는 어떤 운도 지금까지 가지지 않고 있었다.

아무도 도와 줄 수 있습니까?

답변

3

(A 어쨌든 좋은 아이디어), 그래서 당신은 간단한 블록 가시 경로 제한을 사용할 수 있습니다. 예를 들어 내용 유형 경로 패턴을 "article/[title]"으로 설정 한 다음 블록 경로를 "article/*"으로 설정하면

+0

나는이 방법을 좋아한다. – FlorianH

0

블록 구성 페이지로 이동하여 블록 가시성 규칙으로 php를 사용하면됩니다. 특정 콘텐츠 형식, 사용에 블록을 표시하려면 :

이 코드는 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(array('nid' => $nid)); 
    $type = $node->type; 
    if (isset($types[$type])) { 
    $match = TRUE; 
    } 
} 
return $match; 
?> 
, 내가 유형의 각 노드에게 공통의 URL 접두사를 제공하기 위해 pathauto를 사용하는 것이 좋습니다 Overview-approach to block visibility

1

아니요,보기의 build-in 인수 유효성 검사기를 사용할 수 있습니다.

ex. 보기를 사용자의 uid 값으로 어떻게 제한합니까? "의미, 주어진보기는 ​​해당 콘텐츠를 소유 한 로그인 한 사용자 만 볼 수 있습니다.

조회수 PHP Validator 코드는 다음과 같습니다.

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

더 나은 : 새로운 드루팔 버전으로 업그레이드 한 후 깰 가능성이 적습니다 때문에

<?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; 
?> 
+0

더 나은 이유는 무엇입니까? –