web-dev-qa-db-ja.com

ノードコンテンツ内にWebフォームを埋め込む

ノードであるコンテンツ内にウェブフォームを埋め込む必要があります。これはどのように実装できますか?

5
user7282

これを行うにはいくつかの方法があります。私が通常使用する方法は、ノードのカスタム Panel ページを作成するためです。コンテンツ領域には、「表示されているノード」と、フォームをレンダリングするカスタムブロックが含まれます。

ただし、最も簡単な方法は Webform モジュールを使用することであり、UIを使用してフォームを作成し、コンテンツタイプに簡単に添付できます。

6
mpdonadio

この機能(ノードにWebフォームを埋め込む)は、最新のWebフォームモジュールで利用できると思います。

コンテンツに移動> your-webform-node>編集> webform>フォーム設定>詳細設定>ブロックとして利用可能。

6
Phil

他の人から言及された webform モジュールを使用していて(私もそのソリューションを好む)、フォームを手動でphpでレンダリングしたい場合このスニペットを使用します:

$block = module_invoke('webform', 'block_view', 'client-block-370');
print render($block['content']);

370がWebフォームのnode_idであるため、残りのパラメーターを変更する必要はありません。

4
Larzan

コンテンツ内にWebフォームを埋め込むには、プログラムでWebフォームのコンテンツを返す トークン を作成します。または、Webフォームをレンダリングしてブロックをコンテンツの次または内部に配置できるブロックを作成します。

Drupal 8

Webフォームをレンダリングする方法の例を次に示します。

$output = \Drupal::entityManager()->getViewBuilder('webform')->view($my_form);

ブロックエンティティとして埋め込むこともできます。

$block = \Drupal\block\Entity\Block::load('myBlockID');
$block_content = \Drupal::entityManager()
   ->getViewBuilder('block')
   ->view($block);

ソース: Webフォームを埋め込む方法?

3
kenorb

私はあなたの要件を正しく理解していれば、このモジュールは役立つと思います- Webform Template

そして、このパッチを http://drupal.org/node/1430752 (バージョン7.x-1.2の場合でも)使用し、コメント#4に記載されているいくつかの変更に従って、デフォルトを選択することもできます各コンテンツタイプのテンプレート。

お役に立てれば。

0
SGhosh