3

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()

私のモジュールは、ソースによってmineおよびcontribというラベルの付いたディレクトリに分類されます。myModuleが私の中にある間、Node_saveはcontribにあります。

そこで、次のようにコードを修正しました。

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

しかし、同じエラーが発生します。

誰かが私が間違っていることを強調できますか?

4

2 に答える 2

5

使用する:

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

module_load_include APIから:

Drupal を完全にブートストラップする必要があるため、この関数をグローバル コンテキストで使用しないでくださいrequire_once DRUPAL_ROOT . '/path/file'。代わりに使用してください。

于 2012-12-13T14:39:30.747 に答える
1

少し誤解を招く可能性があります。フォルダーの名前は「node_clone」ですが、モジュールは実際には「clone」と呼ばれているため、次のようにします。

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

hook_init()かなり早い段階で実行されるため、事前に clone モジュールの関数が必要ない場合は、コードをフックに移動することをお勧めします。

function mymodule_init(){
  module_load_include('inc', 'clone', 'clone.pages');
  clone_node_save(118);
}
于 2012-12-13T14:39:18.037 に答える