Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 执行节点视图时,如何使用自定义模板文件?_Php_Drupal_Drupal 7_Drupal Theming - Fatal编程技术网

Php 执行节点视图时,如何使用自定义模板文件?

Php 执行节点视图时,如何使用自定义模板文件?,php,drupal,drupal-7,drupal-theming,Php,Drupal,Drupal 7,Drupal Theming,我正在尝试与一个模块集成,该模块使用drupal_渲染(node_视图($node))以获取渲染节点。我有一个自定义的模板文件node--.tpl.php,在简单查看节点时可以正常工作,但是,当使用node\u视图渲染节点时,不使用模板文件,而是使用模块/节点中的corenode.tpl.php。我还实现了hook\u preprocess\u节点,在这种情况下也不会触发 重新创建此节点的一个简单示例是实现hook\u preprocess\u节点,并包含一条看门狗消息。然后在devel exe

我正在尝试与一个模块集成,该模块使用
drupal_渲染(node_视图($node))以获取渲染节点。我有一个自定义的模板文件
node--.tpl.php
,在简单查看节点时可以正常工作,但是,当使用
node\u视图渲染节点时,不使用模板文件,而是使用模块/节点中的core
node.tpl.php
。我还实现了
hook\u preprocess\u节点
,在这种情况下也不会触发

重新创建此节点的一个简单示例是实现
hook\u preprocess\u节点
,并包含一条看门狗消息。然后在devel execute php中执行以下操作:

$node = node_load(<nid>);
print drupal_render(node_view($node));
$node=node_load();
打印drupal_渲染(节点_视图($node));

任何帮助都将不胜感激。

问题是,在另一个模块执行
节点视图时,它使用的是管理主题,而不是公共主题

为了消除这个问题,我实现了
hook\u theme\u registry\u alter
,并将自定义模板放在自定义模块中。这样,无论选择的主题是什么,都会使用它们