web-dev-qa-db-ja.com

テンプレートにユーザー登録フォームを表示しますか?

私はデザインの重いサイトで作業しており、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 を使用してフォームを渡そうとしましたが、レンダリングできませんか?

1
nexus_6

私は最近似たようなものに出くわし、 ブロック参照 モジュールを選びました。

  1. Block Referenceという新しい段落を作成しました

  2. ブロック参照フィールドを追加

  3. フィールド設定で参照可能として選択された「システムブロック」

  4. ユーザーログインブロックを選択しました

そして、wham bamは、段落にユーザーログインブロックを取得してくれてありがとう。

1
Collins

代わりに、フォームをページに直接表示することになりました。

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; ?>
0
nexus_6