web-dev-qa-db-ja.com

Drupal-ノードのフォーム要素にHTMLを追加したいだけですか?

ゲストがジョブを追加できるフォームのように出力するノード/コンテンツがあります。スパムを減らすために、フォーム内にこのHTMLを実装したいと思います。

<div style="POSITION: absolute; TOP: -1000px; LEFT: -1000px">
    <label for="address">If you see this, Leave Empty:</label>
        <input id="address" name="address" />
</div>
<div style="display: none;">
    <label for="username">If you see this, Leave Blank:</label>
        <input id="username" name="username" />
</div>

<form> 鬼ごっこ。

フォームが送信されたら、これをチェックして両方の入力が空であることを確認できるようにしたいと思います。それらが空の場合はフォームを送信する必要があります。そうでない場合は、どちらかが何か入力されている場合は提出することはできません。私はこれを別の非Drupalサイトで行い、そのフォーム上のスパムを完全に排除しました。しかし、私はDrupalサイトにいるので、ノードを介してこれを行う方法を理解したいと思います。

私は現在FTPアクセスを持っていませんが、Drupalサイトで完全な管理者アクセスを持っているので、Drupalを介してこれを行う方法がある場合=それが望ましいでしょう。そのノードのフィールドとして追加できる、これと同様のことを行うモジュールはありますか?

これを始めるにあたって正しい方向に私を向ける助けがあれば、大歓迎です。また、それが役立つ場合は、Devel Moduleをインストールしています...

2
Solomon Closson

独自のヘルパーモジュールを作成します。 hook_form_alter() 、具体的にはhook_form_node_form_alter()バリアントを使用します。その中に単に追加 #markup 要素。

$form['my_markup'] = array(
  '#markup' => "Your HTML here",
);

しかし、あなたの質問の内容では、あなたは自分のhtml以上のものを望んでいるようです。アクティブな要素を追加したいようです。したがって、必要な要素については フォームAPIリファレンス を参照してください。値を処理するには、 送信ハンドラ を定義する必要があります。

4
Mołot