ВопросПерекрывание страниц через hook_menu

В модуле uc_order есть hook_menu и там есть такой итемс

$items['user/%user/order/%uc_order'] = array(
    'title callback' => 'uc_order_page_title',
    'title arguments' => array(3),
    'description' => 'View order.',
    'page callback' => 'uc_order_view',
    'page arguments' => array(3, 'customer'),
    'access callback' => 'uc_order_can_view_order',
    'access arguments' => array(1, 3),
    'type' => MENU_CALLBACK,
    'file' => 'uc_order.admin.inc',
  );

после чего хочу перекрыть этот итемс в своем модуле это значение

 $items['user/%user/order/%uc_order'] = array(
    'title callback' => 'uc_order_page_title',
    'title arguments' => array(3),
    'description' => 'View order.',
    'page callback' => 'my_module_uc_order_view',
    'page arguments' => array(3, 'customer'),
    'access callback' => 'uc_order_can_view_order',
    'access arguments' => array(1, 3),
  );

Так вот, другие итемы этого хука и этого же модуля перекрывал и всё работало хорошо, но этот не хочет, я так понимаю это из-за значения %user добавлял сверху еще global $user; но не помогало, когда убирал %user оставлял только user/order/%uc_order всё работало и выводил всё что надо, подскажите пожалуйста как правильно бороться с этим %user как его указать ? может в модуле надо что-то дописать ? кто подскажет ?

Ну в общем немного потестил и увидел что в моем модуле итем не хочет перекрывать, когда удалил итем в модуле карта мой итем заработал, первый раз столкнулся с тем что в моем модуле не перекрывает итем другого модуля, скажите пожалуйста, как правильно задавать глубину итемов? Что бы вызывался тот итем который необходимо?

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Страницы перекрываются через hook_menu_alter, а не через hook_menu.

22.09.2013 22:00
Аватар пользователя Spleshka
Spleshka написал:

А вес модулей можно менять в таблице systems - от этого зависит порядок вызова хуков. Но это скорее на будущее.

22.09.2013 22:01
Аватар пользователя Rachinskiy
Rachinskiy написал:

хммм... спасибо, а в таблицу системс лезть в ручную в БД ? и менять значение weight?

23.09.2013 01:19
Аватар пользователя Spleshka
Spleshka написал:

Вообще обычно это делается при инсталляции модуля, в hook_install() - запросом к базе данных выставляется корректный вес. А если вы разрабатываете свой модуль - то в автоматическом режиме кошерно через hook_update_N(), либо по быстрому ручками в базе данных.

23.09.2013 10:07

Комментировать