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

関連する問題