'mymodule'では、次のように、hook_menu_alterでメニューのURLをオーバーライドしようとします。
global $base_url;
$items['node/%node/delete'] = array(
'page arguments' => array('myfunction', 1),
'file' => $base_url .'/'. drupal_get_path('module', 'mymodule') .'/includes/custom_node_delete_confirm.inc',
);
ファイルパスが相対パスであり、「/」で始まるため、エラーが発生しました
Failed opening required
'/http://localhost/mysite/sites/all/modules/mymodule/includes/custom_node_delete_confirm.inc'
これも機能しません:
'file' => 'includes/custom_node_delete_confirm.inc'
これどうやってするの ?ありがとうございました
file path
を明示的に設定できます。
ファイルパス:「ファイル」で指定されたファイルを含むディレクトリへのパス。デフォルトでは、フックを実装するモジュールへのパスになります。
したがって、コードは次のようになります。
$items['node/%node/delete']['page arguments'] = array('myfunction', 1);
$items['node/%node/delete']['file'] = 'includes/custom_node_delete_confirm.inc';
$items['node/%node/delete']['file path'] = drupal_get_path('module', 'mymodule');
絶対に必要でない限り、既存のルーターアイテムを完全に上書きしないように注意してください。この例では、必要なaccess callback
/access arguments
とタイトルも削除しています。代わりに、上記の例のように必要な値のみを変更してください。
これを試してください
'file' => drupal_get_path('module', 'mymodule') . '/includes/custom_node_delete_confirm.inc',