Переопределяющее меню крючка() {$элементы}
Например, вот фрагмент из модуля комментариев (comment.module):
function comment_menu() {
$items['comment/%'] = array(
'title' => 'Comment permalink',
'page callback' => 'comment_permalink',
'page arguments' => array(1),
'access arguments' => array('access comments'),
);
$items['comment/reply/%node'] = array(
'title' => 'Add new comment',
'page callback' => 'comment_reply',
'page arguments' => array(2),
'access callback' => 'node_access',
'access arguments' => array('view', 2),
'file' => 'comment.pages.inc',
);
return $items;
}
Как я могу переопределить $items['comment/%']
с помощью $items['comment/reply/%node']
, не взламывая ядро.
Другими словами, мне нужно example.com/comment/[cid]
выглядеть точно так же, как example.com/comment/reply/[nid]/[cid]
?
6
Author: timofey.com, 2012-10-09
2 answers
Да, вы должны использовать hook_menu_alter Создайте новый модуль и добавьте hook_menu_alter
function my_module_menu_alter(&$items) {
// Unset core path
unset($items['comment/%']);
$items['your/pass/here/%node'] = array(
'title' => 'Add new comment',
...
);
}
Но ссылка "комментарий/ответ/%nid/%cid" используется Drupal для ответов на другие комментарии (где %nid - идентификатор узла и %cid - идентификатор комментария, на который вы отвечаете). Используйте другой путь.
8
Author: Gaydabura, 2012-10-09 21:34:57
Вы всегда можете использовать hook_menu_alter и передать тот же обратный вызов страницы и аргументы.
1
Author: junedkazi, 2012-10-09 19:53:18