如何使用module_load_include重用Drupal模块代码



我正在使用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() .

我的模块按源代码分类到标记为 minecontrib 的目录中。Node_save在贡献中,而myModule在我的

因此,我相应地修改了代码如下:

module_load_include('inc', '../../contrib/node_clone', 'clone.pages');

但我得到同样的错误。

我做错了什么?

使用:

require_once DRUPAL_ROOT . '/sites/all/modules/contrib/node_clone/clone.pages.inc';

从module_load_include API :

不要在全局上下文中使用此函数,因为它需要Drupal 要完全引导,请改用require_once DRUPAL_ROOT . '/path/file'

这有点误导,该文件夹名为"node_clone",但该模块实际上称为"克隆",因此您需要:

module_load_include('inc', 'clone', 'clone.pages');

hook_init()运行得很早,所以如果你事先不需要克隆模块的功能,你最好将代码移到钩子中:

function mymodule_init(){
  module_load_include('inc', 'clone', 'clone.pages');
  clone_node_save(118);
}

相关内容

  • 没有找到相关文章

最新更新