it-swarm-id.com

Mengarahkan pengguna setelah simpul menambahkan / mengedit

Saya ingin mengarahkan pengguna ke halaman khusus, setelah mereka membuat simpul atau mengeditnya.

13
ousneo

Kamu bisa menggunakan hook_form_alter untuk menambahkan handler ajukan kustom tempat Anda dapat mengatur jalur redirection.

Lihat FAPI untuk detail lebih lanjut tentang pengalihan formulir.

6
googletorp

Anda dapat membuat aturan yang mengarahkan pengguna ke halaman mana pun saat mereka membuat atau mengedit tipe konten tertentu. Ketika Anda menambahkan aturan pilih "Setelah Membuat Konten Baru" tambahkan juga kondisi "Konten Memiliki Jenis". Bagian You Do akan memberi Anda opsi untuk mengarahkan pengguna ke halaman apa pun yang Anda inginkan.

Untuk pengalihan setelah mengedit simpul, cukup buat aturan baru dan pilih "Setelah memperbarui Konten yang Ada" sebagai opsi pertama Anda.

4
user2014

Saat melakukan ini, pastikan juga untuk menghapus kemungkinan tujuan yang ada yang biasanya ditambahkan ke URL ketika Anda mengklik tombol edit untuk mengedit simpul yang ada.

Ganti article di MYMODULE_form_article_node_form_alter dengan nama mesin tipe konten Anda.

/**
 * 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

Dokumentasinya tidak begitu jelas tentang itu, tetapi Anda harus memodifikasi $_GET['destination'] variabel, bukan $_REQUEST atau $form_state['redirect'].

1
Dmitry Vyal

di Drupal 7 Anda dapat mengubah formulir edit simpul untuk 'melampirkan' fungsi kirim Anda sendiri, di mana Anda dapat mengubah form_state dari formulir konfirmasi penghapusan simpul untuk menyertakan parameter 'tujuan' ... hanya melakukan ini dalam tema khusus yang telah saya kembangkan sebagai subtitle dari tema admin 'tujuh' ...

Dokumentasi untuk hook_form_FORM_ID_alter

Anda dapat menambahkan kait ini ke templat/tema, bukan hanya ke modul.

jadi dalam tema Anda template.php, tambahkan formulir ini ubah pengait:

function yourtheme_node_delete_form_submit( &$form, &$form_state ) {
    $form_state[ 'redirect' ][ 1 ][ 'query' ][ 'destination' ] = "admin/content";
}

dan kemudian, voila. tidak lagi dialihkan ke beranda setelah sebuah simpul dihapus.

1
kris

Solusi dari sini 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