2012-03-28 88 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

嘿克萊夫,非常感謝您的回答。我會試一試,並在這裏回顧一下它的工作原理。 – newz2000 2012-03-28 17:03:03

相關問題