Если страница, на которую вы ссылаетесь, является пользовательской страницей, выводимой из вашего модуля, а «mymodule / page» - это путь к этой странице, для которого вам нужны вкладки «Вид» и «Редактировать», тогда вам следует реализовать hook_menu()
используя код, подобный следующему:
function mymodule_menu() {
$items = array();
$items['mymodule/page'] = array(
'page callback' => 'mymodule_page_view',
'access arguments' => array('view mymodule page'),
);
$items['mymodule/page/view'] = array(
'title' => 'View',
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items['mymodule/page/edit'] = array(
'title' => 'Edit',
'page callback' => 'mymodule_page_edit',
'access arguments' => array('edit mymodule page'),
'weight' => 0,
'type' => MENU_LOCAL_TASK,
);
return $items;
}
Если страница, на которую вы ссылаетесь, является страницей, показанной на example.com/mymodule/page, и на которой должно отображаться то, что вы видите на example.com/node/7, то вы можете реализовать следующий код в Drupal 7:
function mymodule_url_inbound_alter(&$path, $original_path, $path_language) {
if (preg_match('|^mymodule/page|', $path)) {
$path = 'node/7';
}
}
Эквивалентом для Drupal 6 является запись следующего кода в файле settings.php:
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
if (preg_match('|^mymodule/page|', $path)) {
$result = 'node/7';
}
}
Я не писал симметричный код для hook_url_outbound_alter()
и custom_url_rewrite_outbound()
, так как я полагаю, вам не интересно переписывать example.com/node/7, чтобы он выглядел как example.com/mymodule/page, но вы заинтересованы в том, чтобы сделать example.com/mymodule/page таким же, как example.com/node/7.