Odpowiedzi:
Możesz użyć, hook_form_alter
aby dodać niestandardową procedurę obsługi przesyłania, w której możesz ustawić ścieżkę przekierowania.
Zobacz FAPI, aby uzyskać więcej informacji na temat przekierowania formularza.
Możesz utworzyć regułę, która przekieruje użytkownika na dowolną stronę podczas tworzenia lub edycji określonego typu treści. Po dodaniu reguły wybierz „Po utworzeniu nowej treści” dodaj również warunek „Zawartość ma typ”. W sekcji Do You możesz przekierować użytkownika na dowolną stronę.
Aby przekierować po edycji węzła, po prostu utwórz nową regułę i wybierz „Po zaktualizowaniu istniejącej zawartości” jako pierwszą opcję.
Robiąc to, upewnij się również, aby usunąć zaznaczenie możliwego istniejącego miejsca docelowego, które normalnie jest dodawane do adresu URL po kliknięciu przycisku edycji, aby edytować istniejący węzeł.
Zamień article
na MYMODULE_form_article_node_form_alter
nazwę komputera typu zawartości.
/**
* 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
Dokumentacja nie jest zbyt jasna, ale powinieneś zmodyfikować $_GET['destination']
zmienną, nie $_REQUEST
lub $form_state['redirect']
.
w Drupal 7 możesz zmienić formularz edycji węzła, aby „dołączyć” własną funkcję wysyłania, w której możesz zmienić stan formularza formularza potwierdzenia usunięcia węzła, aby uwzględnić parametr „docelowy”… właśnie to zrobiłem w niestandardowym motywie i ” rozwijam się jako podtemat motywu administracyjnego „siedem” ...
Dokumentacja dla hook_form_FORM_ID_alter
Możesz dodać ten haczyk do szablonu / motywu, nie tylko do modułów.
więc w swoim motywie template.php
dodaj ten formularz alter hook:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
a potem, voila. nie jest już przekierowywany na stronę główną po usunięciu węzła.
Rozwiązanie stąd 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,
);
}
?>