web-gelistirme-sc.com

Düğüm eklendikten / düzenlendikten sonra kullanıcıyı yönlendir

Kullanıcıları bir düğüm oluşturduktan veya düzenledikten sonra özel bir sayfaya yönlendirmek istiyorum.

13
ousneo

Kullanabilirsiniz hook_form_alter Yeniden yönlendirme yolunu ayarlayabileceğiniz özel bir gönderme işleyicisi eklemek için.

Form yeniden yönlendirmesi hakkında daha fazla bilgi için FAPI adresine bakın.

6
googletorp

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.

4
user2014

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.

article yerine MYMODULE_form_article_node_form_alter içerik türünüzün makine adıyla.

/**
 * 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';
}
2
leymannx

Belgeler üzerinde çok net değil, ancak $_GET['destination'] Veya $_REQUEST Değil, $form_state['redirect'] Değişkenini değiştirmelisiniz.

1
Dmitry Vyal

Drupal 7 içinde, düğüm düzenleme formunu kendi gönderme işlevinizi 'iliştirmek' için değiştirebilirsiniz; burada 'hedef' parametresini içermek üzere düğüm silme onay formunun form_state'ini değiştirebilirsiniz ... sadece bunu 'yedi' yönetici temasının alt teması olarak geliştirdiğim özel bir temada yaptım ...

hook_form_FORM_ID_alter belgeleri

Bu kancayı yalnızca modüllere değil, bir şablona/temaya ekleyebilirsiniz.

yani temanızın 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.

1
kris

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,
    );
  }  
?>
0
Eugene Fidelin