お問い合わせフォームからプレビューボタンを削除するにはどうすればよいですか?


8

Drupal 8.1.xで連絡フォームのプレビューをオフにする方法

ここに画像の説明を入力してください


cssをいくつか使用して、ディスプレイから削除します。
Joshua Kissoon

回答:


14

カスタムモジュールを使用hook_form_alter()して、任意のフォームのプレビューボタンフォーム要素を取り除くことができます。

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

1
unset()を使用する代わりにフォーム要素を削除する好ましい方法をよく覚えている場合は、#accessプロパティをFALSEに設定することです。そのため、$ form ['actions'] ['preview'] ['#access'] = FALSE ;
batigolix

D8のアクションボタンでは機能しません。これが修正された場合、または別の方法がある場合(何が起こっているのかを調査する時間がなかった)、それに応じて回答を自由に更新してください。
Shawn Conn

正常に動作するようです。スニペットを更新しました
batigolix

代わりに、テーマを使用して、hook_form_form_id_alter()フック、完全なコードスニペット(デフォルトの連絡先フォームで機能):function THEME_form_contact_message_feedback_form_alter(&$form, &$form_state, $form_id) { $form['actions']['preview']['#access'] = FALSE; }
tulvit '21

1

それは私のために働きますそれを行うための最良の方法このコードをYOURPROFILENAME.profileファイルに追加してください

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

1

仕事と試験下のパッチが、無コミットまだありhttps://www.drupal.org/project/drupal/issues/2960353は。パッチはこれまでの最新のD8で動作しますが、パッチがコミットされるまで、[プレビューボタンを非表示]モジュールhttps://www.drupal.org/project/hide_previewを使用することをお勧めします。場合によっては、フックとパッチの操作に慣れていない人を支援します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.