Yanıtlar:
Yeniden hook_form_alter
yönlendirme yolunu ayarlayabileceğiniz özel bir gönderme işleyicisi eklemek için kullanabilirsiniz .
Form yeniden yönlendirmesi hakkında daha fazla bilgi için FAPI'ye bakın .
Belirli bir içerik türü oluştururken veya düzenlerken kullanıcıyı herhangi bir sayfaya yönlendiren bir kural oluşturabilirsiniz. Bir kural eklediğinizde "Yeni İçerik Oluşturduktan Sonra" yı seçin, "İçerik Türü Var" koşulunu da ekleyin. Yapılacaklar bölümü size bir kullanıcıyı istediğiniz herhangi bir sayfaya yönlendirme seçeneği sunar.
Bir düğümü düzenledikten sonra yeniden yönlendirme yapmak için yeni bir kural oluşturmanız ve ilk seçeneğiniz olarak "Mevcut İçeriği güncelledikten sonra" seçeneğini belirtmeniz yeterlidir.
Bunu yaparken, varolan bir düğümü düzenlemek için düzenle düğmesini tıkladığınızda normalde URL'ye eklenen olası bir hedefin ayarını da kaldırdığınızdan emin olun.
Değiştir article
içinde MYMODULE_form_article_node_form_alter
içerik türünün makine adı ile.
/**
* 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
Belgeler üzerinde çok net değil, ancak $_GET['destination']
değişkeni değiştirmelisiniz , $_REQUEST
ya da değiştirmemelisiniz $form_state['redirect']
.
Drupal 7'de, düğüm düzenleme formunu kendi gönderme işlevinizi 'iliştirmek' için değiştirebilirsiniz, burada 'hedef' parametresini eklemek için düğüm silme onay formunun form_state'ini değiştirebilirsiniz ... sadece bunu özel bir tema i 'de yaptım 'yedi' yönetici temasının alt teması olarak gelişiyor ...
Hook_form_FORM_ID_alter belgeleri
Bu kancayı yalnızca modüllere değil, bir şablona / temaya ekleyebilirsiniz.
yani temanızda template.php
, bu formu değiştir kanca ekleyin:
function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
$form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}
ve sonra, voila. bir düğüm silindikten sonra artık ana sayfaya yönlendirilmiyor.
Buradan çözüm 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,
);
}
?>