web-dev-qa-db-ja.com

パネルページにフォームを表示する方法

私の目標は、パネルで作成されたページにフォームを表示することです。フォームはコンテンツペインの間にあります。

単一のページ(ページマネージャーとパネルで作成)は次のようになります。

  1. コンテンツペイン
  2. コンテンツペイン

どのようにしてそれを実現し、パネルで作成されたページにフォームを表示できますか?

アップデート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フォームです。それはノードフォームですか、それともカスタムフォームですか?

5
EB84

ノードフォームの場合、 フォームブロック を使用できます。ブロック内にフォームが作成され、コンテンツペインに追加できます。

ユーザー登録、サイト全体の連絡先、またはノード作成フォームをブロックで表示できるようにします。これは、パネルにフォームを含める場合に特に便利です。

1
Ali Nouman

ユーザー送信用のシンプルなフォームが必要な場合は、 webform を使用することをお勧めします。このモジュールを使用すると、それをブロックとして公開し、パネルページに追加できます。

たとえば、生成ノードやエンティティなどのカスタムフォームである場合は、 Drupal Form API を使用して独自のフォームを作成し、それをブロックとして公開してパネルページに配置することをお勧めします。

独自のモジュールを作成するための良い出発点は Drupalサンプルモジュール です。これは、どのように フォームを構造化する必要がある か、そして 独自のブロックを作成する の方法について本当に良い洞察を提供します。

これがお役に立てば幸いです。

0