私はデザインの重いサイトで作業しており、Paragraphsモジュールを介して作成されたセクションの1つでuser_register
フォームを表示する必要があります。
現在、これをparagraphs-item--myparagraph.tpl.php
ファイルで次のコードで実行しています。
<?php
$form = drupal_get_form('user_register_form');
print drupal_render($form);
?>
これはフォームを表示するために機能しますが、問題は、フォーム検証エラーがある場合、表示されないことです。問題は toolate という形式のレンダリングであることを読みましたが、これを段落エンティティにどのように適用するのかわかりません。 mytheme_preprocess_entity を使用してフォームを渡そうとしましたが、レンダリングできませんか?
私は最近似たようなものに出くわし、 ブロック参照 モジュールを選びました。
Block Referenceという新しい段落を作成しました
ブロック参照フィールドを追加
フィールド設定で参照可能として選択された「システムブロック」
ユーザーログインブロックを選択しました
そして、wham bamは、段落にユーザーログインブロックを取得してくれてありがとう。
代わりに、フォームをページに直接表示することになりました。
template.php
function mytheme_preprocess_page(&$variables) {
if (drupal_is_front_page()){
if (!user_is_logged_in()) {
$form = drupal_get_form('user_register_form');
$variables['register_form'] = drupal_render($form);
}
}
}
page--front.tpl.php
<?php print $register_form; ?>