2009-09-06 68 views
0

我正在一個網站上將有幾個管理頁面,其中有強烈的邏輯。我們舉個例子吧。我想要一個列出某些節點的頁面,並允許您添加或刪除它們,或者對其執行其他操作。現在沒有DB查詢的Drupal PHP頁面?

,我可以創建在Drupal正常的頁面,並選擇輸入濾波器爲「PHP代碼」,然後只需添加以下行:

<?php executeTheCodeThatDoesEverythingForThisPage(); ?> 

而且我可以把這個方法的模塊中。

但是,這並不理想,因爲仍然需要調用DB來查找必須調用的方法。我想:

  1. 完全跳過DB調用
  2. 有一個文件夾,例如存儲我所有自定義頁面的頁面,例如aboutus.php,mystuff.php
  3. 仍然可以訪問這個文件中的所有Drupal的功能

任何人都知道我能做到這一點?

< < - 編輯 - >>

如果我不能跳過數據庫查詢,可有人告訴我,包括從靜態PHP文件數據的最佳方式是什麼?是否有這樣的模塊,或者我應該只是添加以下代碼:

include_once "myFile.php"; 
+0

如果您的代碼來自數據庫,那麼您可以跳過該部分的唯一方法就是使用緩存。 – yoda 2009-09-06 17:24:33

回答

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()的執行是最小的;請參閱文檔以獲取關於鉤子的更多信息。