Переопределение hook_menu () {$ items}

Например, вот фрагмент формы модуля комментариев (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 голосов | спросил timofey 9 +04002012-10-09T23:21:16+04:00312012bEurope/MoscowTue, 09 Oct 2012 23:21:16 +0400 2012, 23:21:16

2 ответа


8

Да, вы должны использовать 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',
        ...
      );
}

Но ссылка «comment /reply /% nid /% cid» используется Drupal для ответов на другие комментарии (где% nid - идентификатор узла и% cid - комментарий, на который вы отвечаете). Используйте другой путь.

ответил Gaydabura 10 +04002012-10-10T01:34:57+04:00312012bEurope/MoscowWed, 10 Oct 2012 01:34:57 +0400 2012, 01:34:57
1

Вы всегда можете использовать hook_menu_alter и передать те же обратные вызовы и аргументы страницы.

ответил junedkazi 9 +04002012-10-09T23:53:18+04:00312012bEurope/MoscowTue, 09 Oct 2012 23:53:18 +0400 2012, 23:53:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132