没有数据库查询的Drupal PHP页面?

时间:2009-09-06 17:19:38

标签: drupal

我正在一个网站上工作,其中会有几个管理页面,其中包含强烈的逻辑。我们来举个例子吧。我想要一个列出某些节点的页面,允许您添加或删除它们,或者对它们执行其他操作。

现在,我可以在Drupal中创建一个普通页面并选择输入过滤器作为“php code”,然后添加以下行:

<?php executeTheCodeThatDoesEverythingForThisPage(); ?>

我可以把这个方法放在一个模块中。

然而,这并不理想,因为仍然需要进行DB调用以找出必须调用的方法。我想:

  1. 完全跳过数据库电话
  2. 有一个文件夹,例如页面,用于存储我的所有自定义页面,例如aboutus.php,mystuff.php
  3. 仍然可以访问此文件中的所有drupal函数
  4. 有人知道我该怎么做吗?

    &lt;&lt; - EDITED - &gt;&gt;

    如果我不能跳过数据库查询,有人可以告诉我从静态php文件中包含数据的最佳方法吗?是否有一个模块,或者我应该添加以下代码:

    include_once "myFile.php";
    

2 个答案:

答案 0 :(得分:1)

要包含文件,您需要查看菜单系统,特别是页面回调:

http://drupal.org/node/146172

答案 1 :(得分: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()的实现很少;有关该钩子的更多信息,请参阅文档。