我使用node_clone模块效果很好但我的项目中需要使用自定义模块中的node_clone函数。所以我输入以下代码:
module_load_include('inc', 'node_clone', 'clone.pages');
function mymodule_init(){
clone_node_save(118);
}
该代码返回Fatal error: Call to undefined function clone_node_save()
。
我的模块按来源分类为标记为我的和 contrib 的目录。 Node_save在contrib中,而myModule在我的中。
所以,我按照以下方式修改了代码:
module_load_include('inc', '../../contrib/node_clone', 'clone.pages');
但我得到同样的错误。
有人能突出我做错了吗?
答案 0 :(得分:5)
使用:
require_once DRUPAL_ROOT . '/sites/all/modules/contrib/node_clone/clone.pages.inc';
不要在全局上下文中使用此函数,因为它需要Drupal 要完全自助,请改用
require_once DRUPAL_ROOT . '/path/file'
。
答案 1 :(得分:1)
这有点误导,文件夹名为'node_clone',但模块实际上称为'clone',所以你想要:
module_load_include('inc', 'clone', 'clone.pages');
hook_init()
很早就开始运行了,所以如果你手头不需要克隆模块的功能,你最好将代码移到钩子中:
function mymodule_init(){
module_load_include('inc', 'clone', 'clone.pages');
clone_node_save(118);
}