Ответы:
Вы можете использовать hook_form_alter
для добавления собственного обработчика отправки, где вы можете установить путь перенаправления.
Смотрите FAPI для более подробной информации о перенаправлении формы.
Вы можете создать правило, которое перенаправляет пользователя на любую страницу при создании или редактировании определенного типа контента. При добавлении правила выберите «После создания нового контента» и добавьте условие «Контент имеет тип». В разделе «Do Do» вы сможете перенаправить пользователя на любую нужную вам страницу.
Для перенаправления после редактирования узла просто создайте новое правило и выберите «После обновления существующего контента» в качестве первого варианта.
При этом убедитесь, что вы также удалили возможный существующий пункт назначения, который обычно добавляется в 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 формы подтверждения удаления узла, чтобы включить параметр «destination» ... только что это было сделано в пользовательской теме i ' развивалась как подтема «семерки» административной темы ...
Документация для hook_form_FORM_ID_alter
Вы можете добавить этот хук в шаблон / тему, а не только в модули.
поэтому в вашей теме template.php
добавьте эту форму alter hook:
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,
);
}
?>