Drupalで「Mad Libs」スタイルの形を作成するにはどうすればよいですか?
-
25-10-2019 - |
質問
この記事では、このアイデアに興味をそそられています。 「マッドリブス」スタイルフォームは変換を25-40%増加させる. 。いくつかのDrupalサイトで登録フォームの代わりにそのようなフォームをテストしたいと思います。ただし、DrupalのフォームAPIを使用して、そのような非正統派の形式にどのようにアプローチするかはわかりません。
hook_form_alterを使用して既存のuser_registerフォームを変更することは実用的でしょうか?より良い方法はありますか?
理想的には、各フォームフィールドを任意のフォームでトークン化し、フィールドが表示されるトークンIDを使用して「ストーリー」テキストを入力できるようにしたいと思います。フォームのレンダリングプロセスがどこでそれを行うのかわかりませんか?
解決
面白い。通常は、その中にフィールドがあるだけで、通常はDrupalフォームを構築するようにフォームを構築する必要があります。あなたの物語は、フォームのテーマに使用する必要があるテンプレートファイルに入ります。テンプレートをテーマフォームに使用することは非常に簡単です。たとえば、_themeフックでは、フォームをテンプレートファイルでバインドします。
testmodule_theme()
{
return array(
"user_aboutme_form" => array(
"arguments" => array( "form" => NULL ),
'path' => $path_to_template_folder,
"template" => "user-aboutme-form",
)
);
}
その間にテーマキャッシュをクリアしてください。テンプレートファイルでは、フォーム配列全体が取得され、Drupal_Render関数を使用して個々の要素をレンダリングできます。カスタムスタイリングを使用すると、上記のWebサイトと同じルックアンドフィールを得ることができます。ここでの唯一のキャッチは、個々のフォーム要素のレンダリングが完了した後、ルートフォーム要素、つまりdrupal_render($ form)をレンダリングすることです。
所属していません StackOverflow