Как отобразить две форме на одной странице при помощи custom template файла

Главные вкладки

Аватар пользователя usik usik 31 марта 2013 в 17:25

Разрабатываю новый модуль. Необходимо осуществить процесс обработки нескольких форм. Создал формы и мне не понравился layout темы. Решил раставить контролы, так как мне нужно. Для этого сделал следующее:

function example_menu() {
    $items['base/manual'] = array(
        'page callback'    => 'test_page',
        'access arguments' => array('access content'),
    );
    return $items;
}

function example_theme() {
    return array(
        'form1'  => array(
        'render element' => 'form',
        'template' => 'template_file',
        ),
    );
}

function form1($form, &$form_state) {
    $form['name'] = array(
        '#type' => 'textfield',
        '#title' => t('Name'),
        '#required' => TRUE,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Go'),
    );
    return $form;
}

function test_page(){
    $forms = array();
    $forms['first']=drupal_get_form('form1');
    return $forms;
}

Файл Template_file и занимается выводом формы. В общем все хорошо. Но вот как сделать так чтобы в файл template_file, мог вывести две формы? Т.е. мне нужно на одной странице иметь две формы.

function example_menu() {
    $items['addaccident/base/manual'] = array(
        'page callback'    => 'test_page',
        'access arguments' => array('access content'),
    );
    return $items;
}

function form1($form, &$form_state) {
    $form['name'] = array(
        '#type' => 'textfield',
        '#title' => t('Name'),
        '#required' => TRUE,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Go'),
    );
    return $form;
}

function form2($form, &$form_state) {
    $form['name'] = array(
        '#type' => 'textfield',
        '#title' => t('Name2'),
        '#required' => TRUE,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Go2'),
    );
    return $form;
}

function test_page(){
    $forms = array();
    $forms['first']=drupal_get_form('form1');
    $forms['second']=drupal_get_form('form2');
    return $forms;
}

Как будет выглядеть функция example_theme()? В общем мне нужно на одной страницце отобразить две формы, причем разметкаlдолжна быть в файле template-file, там должно наверное быть что нить вот такое вот:

<table border="1">
    <tr>
        <td><?php print drupal_render($forms['first']['name']); ?></td>
        <td><?php print drupal_render($forms['second']['name']); ?></td>
    </tr>
</table>

Помогите пожалуйста!