2009-09-06 57 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()的执行是最小的;请参阅文档以获取关于钩子的更多信息。