Вывод формы в виде таблицы Drupal7 и Drupal6 - отличия

Прислано: sitdikov

ср, 22/02/2012 - 06:11

Долго пытался понять почему ошибки вылазят и все остальные косяки, разобрался.
Делюсь решением:

В 6ом друпале для темизации формы мы использовали:

function module_theme(
                return array(
			'module_list_form' => array(
				'arguments' => array('form' => NULL),
			),
		);
);

а сам метод (функция) темизации module_list_form имела следующий вид:

function theme_module_list_form($form) {
 
	$header = array(...);
 
	$rows = array();
 
	foreach (element_children($form['nid']) as $key){
 
		$rows[] = array(...);
	}
 
	$output = theme('table', $header, $rows);
 
	return $output;
}

Что поменялось в drupal7:

function module_theme()
{
         return array(
		'module_list_form' => array(
				'render element' => 'form',
			),
		);
}

То есть arguments поменялось на render_element, а theme_module начала принимать не $form, а $variables и определяется теперь $form как
$form = $variables['form'];

Может немного сумбурно, простите.

Ссылки партнёров