2

In 'mymodule', i try to override a menu url with hook_menu_alter, like this :

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',
);  

I have an error because the file path is relative and begins with a "/"

Failed opening required
'/http://localhost/mysite/sites/all/modules/mymodule/includes/custom_node_delete_confirm.inc'

and this doesn't work too:

'file' => 'includes/custom_node_delete_confirm.inc'

How can i do this ? Thank You

2 Answers 2

8

You can set the file path explicitly:

file path: The path to the directory containing the file specified in "file". This defaults to the path to the module implementing the hook.

So your code might look like:

$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');

Be careful not to completely overwrite an existing router item unless you absolutely need to, in your example you're removing the required access callback/access arguments, and also the title; instead only change the values you need to as in the example above.

1
  • 1
    It works, and you are right, i just need to override "page arguments" and "file". Thank you
    – pico34
    Commented Mar 21, 2013 at 13:20
0

Try out this

'file' => drupal_get_path('module', 'mymodule') . '/includes/custom_node_delete_confirm.inc',
3
  • 1
    doesn't work :Failed opening required 'modules/node/sites/all/modules/mymodule/includes/custom_node_delete_confirm.inc
    – pico34
    Commented Mar 21, 2013 at 13:16
  • because the module implementing the hook is the node module
    – pico34
    Commented Mar 21, 2013 at 13:32
  • This does not work because the file attribute already uses the full path to the original module location, like that: Warning: require_once(/var/www/drupal/sites/all/modules/old_module/sites/all/modules/new_module/new_module.pages.inc): failed to open stream: No such file or directory.
    – q9f
    Commented Jun 26, 2014 at 7:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.