私の目標は、パネルで作成されたページにフォームを表示することです。フォームはコンテンツペインの間にあります。
単一のページ(ページマネージャーとパネルで作成)は次のようになります。
どのようにしてそれを実現し、パネルで作成されたページにフォームを表示できますか?
アップデート2-4-2014:私はこれを見つけました article で、機能しない次のブロックを作成しました(パネルに追加しようとするとエラーが発生します)。 sombodyはこれを機能させるのに役立ちますか?
<?php
function my_answer_form_block_info() {
$blocks = array();
$blocks['my_answer_form'] = array(
'info' => t('My-Answer-Form'),
'cache' => DRUPAL_CACHE_GLOBAL,
);
return $blocks;
}
function my_answer_form_block_view($delta = '') {
$block = array();
switch($delta) {
case 'my_answer_form':
$block['subject'] = t('My Answer Form');
$block['content'] = drupal_get_form('answer_node_form');
break;
}
return $block;
}
?>
注:フォームIDは「answer_node_form」です。
Answers Module を使用しています。パネルページに配置したいフォームは、Answerモジュールによって作成されたAnswerフォームです。それはノードフォームですか、それともカスタムフォームですか?
ノードフォームの場合、 フォームブロック を使用できます。ブロック内にフォームが作成され、コンテンツペインに追加できます。
ユーザー登録、サイト全体の連絡先、またはノード作成フォームをブロックで表示できるようにします。これは、パネルにフォームを含める場合に特に便利です。
ユーザー送信用のシンプルなフォームが必要な場合は、 webform を使用することをお勧めします。このモジュールを使用すると、それをブロックとして公開し、パネルページに追加できます。
たとえば、生成ノードやエンティティなどのカスタムフォームである場合は、 Drupal Form API を使用して独自のフォームを作成し、それをブロックとして公開してパネルページに配置することをお勧めします。
独自のモジュールを作成するための良い出発点は Drupalサンプルモジュール です。これは、どのように フォームを構造化する必要がある か、そして 独自のブロックを作成する の方法について本当に良い洞察を提供します。
これがお役に立てば幸いです。