2012-03-28 4 views
0

내 Drupal 6 설치에서 PHP 필터가 비활성화되어 노드 자체에 <?php ... ?>을 사용할 수 없습니다.특정 드루팔 (Drupal) 노드에서 PHP 코드 실행

소수의 페이지에서 약간의 PHP 코드를 실행해야하는 경우가 있습니다. Drupal 6에서 URL 패턴과 일치하는 모듈을 만든 다음 페이지에서 함수를 실행하기 전에 표시하는 방법이 있습니까?

특히 몇 페이지에서 일부 데이터를 처리 한 다음 HTTP 헤더를 보내야합니다. 이러한 페이지에 대한 사용자 지정 .tpl 파일을 만들 수 있지만이 같은 응용 프로그램 논리를 .tpl 파일에 넣으면 해킹처럼 느껴집니다.

답변

1

특별히 노드 페이지에 대해 이렇게하려면 hook_nodeapi()을 구현하는 것이 좋습니다. 이것은 당신이 URL을 기반으로 일치를 수행 할 필요가 없습니다 의미 당신은 가능한 가장 '구조화'방식으로 헤더를 추가 할 수 있습니다 : 당신이 다음 비 노드 페이지 위해 그것을 할 필요가 있다면

function MYMODULE_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) { 
    if ($op == 'view') { 
    drupal_set_header('some header'); 
    } 
} 

대신 hook_init()을 구현하려는 것입니다 : 후크의

function MYMODULE_init() { 
    if ($_GET['q'] == 'node/1') { // or whatever path 
    drupal_set_header('some header'); 
    } 
} 

가 호출 된 헤더가 너무 어느 쪽이든이 작동 클라이언트로 전송 잘 전에.

+0

안녕하세요 clive, 답장을 보내 주셔서 감사합니다. 나는 그것을 시험해보고 그것이 작동하는 방법에 대한 메모를 여기에서 되돌릴 것이다. – newz2000