如何在 Drupal 6 页面上使用 php 包含?

Posted

技术标签:

【中文标题】如何在 Drupal 6 页面上使用 php 包含?【英文标题】:How can I use a php include on a Drupal 6 page? 【发布时间】:2014-10-06 02:46:33 【问题描述】:

我正在尝试在 Drupal 页面上使用 php 包含的标头。我有一个名为“ss_header.php”的文件,其中包含以下 html

<div class="ss-header-container">
<div class="ss-header"><a class="btn btn-extra btn-red" href="">Register</a></div>
<div class="ss-nav cf">
<a href="#">Register</a>
<a href="#">Agenda</a>
<a href="#">Hotel</a>
<a href="#">FAQ</a>
<a href="#">Shop</a>
<a href="#">Hat District</a>
<a href="#">Download</a>
</div>
</div>

我正在尝试在我正在创建的页面正文中添加以下代码:

<?php include 'ss_header.php';?>

这些都不起作用。我收到以下错误: *警告:包含(ss_header.php):无法打开流:/var/www/vhosts/redhatsociety.com/includes/common.inc(1808)中没有这样的文件或目录:第4行的eval()代码. 警告:include():在 /var/www/vhosts/redhatsociety.com/includes/ 中打开 'ss_header.php' 以包含 (include_path='.:/usr/share/pear:/usr/share/php') 失败common.inc(1808) : eval()'d 代码在第 4 行。*

【问题讨论】:

标头工作正常,但文件不在您认为的位置。检查脚本的工作目录 (getcwd()) 是什么,drupal 可能已将其更改为其他目录。 【参考方案1】:

如果您尝试添加的文件位于 Drupal 站点的模块中,请使用 module_load_include 函数 Drupal 6 API module_load_include

例如,如果文件位于子目录“otherfiles”下的“mymodule”模块目录中(假设您的文件名为 ss_header.php),那么您可以执行以下操作:

module_load_include('php', 'mymodule', 'otherfiles/ss_header');

或者,如果它位于您的主题中,您可以使用path_to_theme() 函数获取当前主题路径。

注意:从您提到的细节来看,您尝试做的事情听起来不像是正常的 Drupal 方式。不幸的是,从提供的小细节来看,实际上不可能提出任何其他建议。如果它有帮助,您可能想进一步研究 Drupal 模板系统,看看是否有更好的方法来实现您想要的 (Details on how to override themable output which may help as a starting point),如果您想查看预处理钩子 (D6 hook_preprocess)从您的模块或模板向页面添加自定义内容。

【讨论】:

以上是关于如何在 Drupal 6 页面上使用 php 包含?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用视图2和Drupal 6创建相关页面块

PHP 在Drupal 6中将视图插入页面

如何在独立的 PHP 页面中使用 Drupal 搜索?

如何解决在Drupal 6.13中使用PHP 5.3.0的弃用函数ereg()

如何在 Drupal 的一页上显示 2 个包含 2 种内容类型的表格?

Drupal,在自定义 php 页面上嵌入视图块/结果