Відповіді:
Ви можете використовувати hook_form_alter
для додавання користувальницького обробника подання, де можна встановити шлях переадресації.
Докладнішу інформацію про перенаправлення форми див. У FAPI .
Ви можете створити правило, яке перенаправляє користувача на будь-яку сторінку, коли він створює або редагує певний тип вмісту. Коли ви додаєте правило, виберіть "Після створення нового вмісту", додайте також умову "Тип вмісту". У розділі "Ви робите" ви зможете перенаправити користувача на будь-яку сторінку, яку ви хочете.
Для переадресації після редагування вузла просто створіть нове правило та виберіть "Після оновлення існуючого вмісту" як свій перший варіант.
Виконуючи це, переконайтесь, що також викиньте можливе існуюче призначення, яке зазвичай додається до URL-адреси, коли ви натискаєте кнопку редагування для редагування наявного вузла.
Замінити article
в MYMODULE_form_article_node_form_alter
з ім'ям машини вашого контенту типу.
/**
* Implements hook_form_BASE_FORM_ID_alter().
*/
function MYMODULE_form_article_node_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#submit'][] = '_MYMODULE_node_form_redirect';
}
/**
* Submit callback.
*/
function _MYMODULE_node_form_redirect($form, &$form_state) {
// Unset destination first.
unset($_GET['destination']);
unset($_REQUEST['edit']['destination']);
$form_state['redirect'] = 'FOO/BAR';
}
unset
destination
Документація на ньому не дуже чітка, але ви повинні змінити $_GET['destination']
змінну, ні $_REQUEST
або $form_state['redirect']
.
в Drupal 7 ви можете змінити форму редагування вузла, щоб "приєднати" власну функцію подання, в якій ви можете змінити form_state форми підтвердження видалення вузла, щоб включити параметр "призначення" ... щойно це було зроблено у спеціальній темі i " я розвивався як підтема теми "сім" адмін ...
Документація для гачка_форма_FORM_ID_alter
Ви можете додати цей гачок до шаблону / теми, а не лише до модулів.
тому у свою тему template.php
додайте цю форму для зміни гачка:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
а потім, вуаля. більше не переспрямовується на головну сторінку після видалення вузла.
Рішення звідси http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#comment-18139
<?php
function FORM_NAME_form_submit($form, &$form_state) {
$form_state['redirect'] = array(
// $path
'path/to/redirect/to',
// $options
array('query' => array('key' => 'value')),
// $http_response_code
302,
);
}
?>