2010-04-20 2 views
2

node-mynode.tpl.php라는 사용자 정의 된 템플릿을 만들었습니다 mynode 유형의 노드가 요청 될 때마다 node-mynode.tpl.php 이 자동으로 사용됩니다.Drupal : 특정 콘텐츠 유형에 블록 지정

그러나 이제 사용자는이 경우 특정 메뉴 블록을보고 싶어합니다.

질문 : 블록을 특정 콘텐츠 형식에 할당하려면 어떻게해야합니까?

힌트 : Pathauto로 URL 별칭을 살펴보기 시작했습니다. 하나의 해결책이이 방향에 놓여 있다고 의심됩니다.

답변

1

mynode 유형의 모든 /mynode/* 시작 페이지에서만 보여 /mynode로 시작하고 블록의 페이지 특정 가시성 설정을 사용하여 자동 별칭을 노드주십시오.

+0

Brilliant! ! ! ! – bert

+0

... 실용적이지는 않지만 ... 나는 지금이 유형의 노드가 500 개 이상이고, 앞으로 수 백 개가 넘는다. 다른 접근법이 있습니까? – bert

+0

왜 실용적이지 않습니까? 노드에 대해 설정 한 URL 별칭을 모두 삭제 한 다음 경로 교체 패턴을 사용하여 한꺼번에 모든 별칭을 대량으로 생성 할 수 있습니다. 전형적으로'mynode/[title-raw]'와 같은 것입니다. – Finbarr

7

Drupal 6에서 블록의 가시성 설정을 구성 할 수 있습니다. 관리자 백엔드에서 블록 옆의 'configure'링크를 클릭하고 다음 단계를 수행하십시오.

1) '다음 PHP 코드가 TRUE (PHP 모드, 전문가 전용) 페이지 별 공개 설정 '탭을 클릭하십시오.

2

) 현재 노드의 노드 유형을 확인하고 그에 따라 TRUE를 반환하는 다음과 같은 PHP 코드를 입력 -

<?php 
    if(arg(0) != 'node' || !is_numeric(arg(1))) 
    { return FALSE; 
    } 

    //load a fully-populated Drupal node object 
    $temp_node = node_load(arg(1)); 

    if($temp_node->type == 'mynode')  //check the node type 
    { return TRUE; //display block 
    } 
?> 

이 작동합니다 ....

+3

사이드 노트 : 이것은 Drupal 4.7부터 가능했습니다. 블록 가시성 및 많은 코드 예제에 PHP를 사용하는 방법에 대한 자세한 내용은 http://drupal.org/node/60317을 참조하십시오. – marcvangend

2

상황에 맞는 모듈을 사용할 수 있습니다