Odpowiedzi:
Możesz użyć, hook_form_alteraby 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ń articlena MYMODULE_form_article_node_form_alternazwę 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';
}
unsetdestination
Dokumentacja nie jest zbyt jasna, ale powinieneś zmodyfikować $_GET['destination']zmienną, nie $_REQUESTlub $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.phpdodaj 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,
);
}
?>