2009-09-06 8 views
0

私は強烈なロジックを持ついくつかの管理ページがあるサイトに取り組んでいます。例を見てみましょう。特定のノードをリストし、それらのノードを追加または削除したり、その他のアクションを実行することができるページが必要です。DBクエリを持たないDrupal PHPページ?

今、私はDrupalの中で通常のページを作成し、「PHPコード」として、入力フィルタを選択し、ちょうど次の行を追加することができます。

<?php executeTheCodeThatDoesEverythingForThisPage(); ?> 

を私はモジュール内でこのメソッドを置くことができます。

しかし、これは理想的ではありません。なぜなら、どのメソッドを呼び出さなければならないかを見つけるためのDB呼び出しが行われているからです。私がしたい:

  1. 全くDBコール
  2. をスキップするには、例えば、フォルダを持っていますすべてのカスタムページを保存するページ。 aboutus.php、mystuff.php
  3. はまだ誰もが、私はこれを行うことができます方法を知っている

このファイル内のすべてのDrupalの機能へのアクセス権を持っていますか?

< < - 編集済み - >>

私はDBのクエリをスキップすることができない場合は、誰かが私に静的なPHPファイルからのデータを含めるための最良の方法を伝えることができますか?このためのモジュールがあり、または私はちょうど次のコードを追加する必要があります:ファイルを含めるには

include_once "myFile.php"; 
+0

コードがデータベースのものである場合、キャッシュを使用する場合は、その部分をスキップできる唯一の方法です。 – yoda

答えて

0

myFile.phpファイルがモジュール自体を含むディレクトリにコピーされていると仮定すると、次のようなコードを使用できます。

function mymodule_menu() { 
    $items['mymodule_path'] = array(
    'page callback' => 'mymodule_path_output', 
    'access arguments' => array('access content'), 
); 

    return $items; 
} 

function mymodule_path_output() { 
    module_load_include('php', 'mymodule', 'myFile'); 

    // … 
} 

私が使用したhook_menu()の実装は最小です。フックの詳細については、ドキュメントを参照してください。

関連する問題