首先,我知道这不是在D7中做到这一点的正确方法,但我需要这样做。
我在node.tpl.php中包含了一个文件:
include DRUPAL_ROOT . '/sites/all/themes/mytheme/inc/node_functions.php';
在这个包含的文件中,我有一个函数,之后我想从节点的内容体中调用。
目前,如果我从节点内容调用该函数,我会得到一个WSOD。我还检查了在函数存在的节点内容中是否存在PHP函数:
function_exists('name_of_my_function')
但它返回FALSE,因此该范围'中的函数不存在。
总之,我想要一个包含/附加到节点的有用功能的集合,但是我不想在每次创建节点时编写include / require语句。我只想简单地打电话给'那些功能。那么,我该怎么做呢?
提前致谢。
答案 0 :(得分:0)
您好在template.php文件中使用以下代码,为此您必须使用节点预处理功能。
function THEME_NAME_preprocess_node(&$variables) {
if(function_exists('FUNCTION_NAME_TO_BE_CALLED')) {
include base_path() . path_to_theme() . "/file_to_include.php";
}
}
function FUNCTION_NAME_TO_BE_CALLED() {
echo "hello";
}
答案 1 :(得分:0)
我终于写了一个自定义模块来实现我的目标。正如@Leonando Tan在DrupalAnswers注意到我,有人可以编写一个带有自定义函数的模块(与特定的钩子无关)。我不知道,因为我是开发drupal模块的新手(事实上,这是我的第一个模块)。
然而,在这种情况下,很容易将我的通才功能包含在模块中。这样做,这些功能可以通过所有网站获得,所以我随时随地都可以调用/调用它们。