hook_menu vs path alias Drupal 7
Hi All, I am developing a site in Drupal 7. I have a node with alias /article/hello I also have a hook_menu with "/article/hello" path registered in my module. When i access the path in browser http://localhost/article/hello it shows the node instead of calling "my_custom_function". $items['article/hello'] = array( 'title' => 'Hello World', 'description' => 'Hello world', 'page callback' => 'my_custom_function', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); I want 'my_custom_function' to get called. Appreciate your help. -- :DJ
I haven't looked at that code in D7 yet, but based on D6, I am going to guess that it hasn't changed. The URL alias is resolved to the underlying "node/1234" before the menu is looked at. Since the menu specifies "article/hello," it does NOT match "node/1234" and therefore executes the standard "node/%nid" path instead. If you change the menu path to "node/1234," I bet it will do what you want. Nancy Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr. ________________________________ From: Deva <devendra.in@gmail.com> To: development@drupal.org Sent: Thu, February 17, 2011 8:41:21 AM Subject: [development] hook_menu vs path alias Drupal 7 Hi All, I am developing a site in Drupal 7. I have a node with alias /article/hello I also have a hook_menu with "/article/hello" path registered in my module. When i access the path in browser http://localhost/article/hello it shows the node instead of calling "my_custom_function". $items['article/hello'] = array( 'title' => 'Hello World', 'description' => 'Hello world', 'page callback' => 'my_custom_function', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); I want 'my_custom_function' to get called. Appreciate your help. -- :DJ
It was still not catching the "node/%nid". I did a quick fix as written .htaccess rewrite to redirect user from /article/hello to /mymodule/article/hello. RewriteRule ^article/hello$ /mymodule/article/hello [L] My updated hook_menu $items['mymodule/article/hello'] = array( 'title' => 'Hello World', 'description' => 'Hello world', 'page callback' => 'my_custom_function', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); I am happy now :) Thanks Nancy. On Thu, Feb 17, 2011 at 8:08 PM, nan wich <nan_wich@bellsouth.net> wrote:
I haven't looked at that code in D7 yet, but based on D6, I am going to guess that it hasn't changed. The URL alias is resolved to the underlying "node/1234" before the menu is looked at. Since the menu specifies "article/hello," it does NOT match "node/1234" and therefore executes the standard "node/%nid" path instead. If you change the menu path to "node/1234," I bet it will do what you want.
*Nancy*
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.
------------------------------ *From:* Deva <devendra.in@gmail.com> *To:* development@drupal.org *Sent:* Thu, February 17, 2011 8:41:21 AM *Subject:* [development] hook_menu vs path alias Drupal 7
Hi All,
I am developing a site in Drupal 7. I have a node with alias /article/hello I also have a hook_menu with "/article/hello" path registered in my module. When i access the path in browser http://localhost/article/hello it shows the node instead of calling "my_custom_function".
$items['article/hello'] = array( 'title' => 'Hello World', 'description' => 'Hello world', 'page callback' => 'my_custom_function', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, );
I want 'my_custom_function' to get called. Appreciate your help.
-- :DJ
-- :DJ
participants (2)
-
Deva -
nan wich