Bagaimana cara menghapus tombol pratinjau dari formulir kontak?

8

Cara mematikan pratinjau dalam formulir kontak di Drupal 8.1.x

masukkan deskripsi gambar di sini

SakaSerbia
sumber
Gunakan beberapa css dan hapus dari tampilan.
Joshua Kissoon

Jawaban:

14

Modul khusus dapat digunakan hook_form_alter()untuk menghapus elemen bentuk tombol pratinjau dalam bentuk apa pun:

/**
 * Implements hook_form_alter().
 */
function MYMODULE_form_alter(&$form, $form_state, $form_id) {

  // Look for any form provided by the contact module.
  // If you want to target a specific form you'll use the whole form ID
  // (e.g. Website feedback = 'contact_message_feedback_form').
  if (strpos($form_id, 'contact_message_') !== FALSE) {
    $form['actions']['preview']['#access'] = FALSE;
  }
}
Shawn Conn
sumber
1
Jika saya ingat betul cara yang lebih disukai untuk menghapus elemen form daripada menggunakan unset () adalah dengan menyetel properti #access ke FALSE, jadi: $ form ['actions'] ['preview'] ['# access'] = FALSE ;
batigolix
Ini tidak berfungsi untuk tombol aksi di D8. Jika ini sudah diperbaiki atau ada alternatif (saya tidak punya waktu untuk meneliti apa yang terjadi di sana), jangan ragu untuk memperbarui jawabannya.
Shawn Conn
Tampaknya bekerja dengan baik. Saya memperbarui cuplikan
batigolix
Apakah itu melalui theming sebagai gantinya, hook_form_form_id_alter()kait, potongan kode lengkap (berfungsi untuk formulir kontak default):function THEME_form_contact_message_feedback_form_alter(&$form, &$form_state, $form_id) { $form['actions']['preview']['#access'] = FALSE; }
tulvit
1

Ini berfungsi untuk saya Cara terbaik untuk melakukannya. Tambahkan kode ini file YOURPROFILENAME.profile Anda

/**
 * Implements hook_form_alter().
 */
function YOURPROFILENAME_form_alter(&$form, $form_state, $form_id) {
   if (strpos($form_id, 'contact_message_') !== FALSE) {
    $form['actions']['preview']['#access'] = FALSE;
  }
}
omkar gaonkar
sumber