Темизация форм

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

Аватар пользователя sivogelezov@rambler.ru sivogelezov@ram... 24 февраля 2011 в 17:27

Добрый день !

Есть такая проблема.

Вывожу несколько одинаковых форм на странице.
Каждая форма генерируется одной и той же функцией
То есть я для каждой формы вызываю drupal_get_form с уникальным id -
test_draft_view_form_1, test_draft_view_form_2 etc

function test_cart_pane($items) {
    $output = '';
        $items = test_get_drafts();
        foreach($items as $item){
                $panes[] = array(
                'id' => 'draft_form_'.$item['draft_item_id'],
                'title' => t('Default draft form'),
                'enabled' => TRUE,
                'weight' => $item['draft_item_id'],
                'body' => !is_null($item['products']) ? '<div id="draft-form-pane">'. drupal_get_form('test_draft_view_form_'.$item['draft_item_id'], $item['products'], $item['draft_item_id']) .'</div>': '',
                );
                $output .= $panes;
        }
        return $panes;
}

а затем переопределяю функцию создания формы в hook_forms

function test_cart_forms($form_id)
{
        $forms = array();
        if (strpos($form_id, 'test_draft_view_form_') === 0) {
                $forms[$form_id] = array(
                        'callback' => 'test_draft_view_form',
                );
        }
        return $forms;
}

Далее в функции создания формы я прописываю тему test_draft_view_form

function test_draft_view_form($form_state, $items, $draft_id) {
  $form['drafts'] = array(
        '#id' => 'Draft '.$draft_id,
    '#type' => 'tapir_table',
        '#tree' => TRUE,
        '#theme'=> 'test_draft_view_form',
  );

и создаю соответственно функцию темы theme_test_draft_view_form

function test_theme() {
  return array(
    'test_draft_view_form' => array(
      'arguments' => array('form' => NULL),
  );
}

При выводе тема вызывается, но в нее передается несуществующая форма -
то есть видимо оно пытается найти форму test_draft_view_form ,
а у меня имеются формы test_draft_view_form_1, test_draft_view_form_2 и тд...

Каким образом можно еще темизировать одинаковые формы с различными ID одной функцией темы ?

Заранее спасибо !