Темизация формы контактов [РЕШЕНО]

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

Комментарии

Аватар пользователя gothica@drupal.org gothica@drupal.org 24 февраля 2010 в 18:48

Застрял на данном этапе:

function arthemia_theme() {
return array(

'contact_mail_page' => array(

'arguments' => array('form' => NULL),
),
);
}

function arthemia_contact_mail_page($form) {
$output = '';

print_r($form);

$output .= drupal_render($form);
return $output;
}

То есть дальше мне необходимо в форму с id = contact_mail_page добавить тег fieldset

Как можно в коде между 3 и 4 строчкой, например, вставить новый тег fieldset?

Аватар пользователя direqtor direqtor 24 февраля 2010 в 19:06

drupal_render($form['имя_поля']); выведет одно из полей. Вывод можно вставить, например в ячейку таблицы. Так же все остальные видимые поля. В конце drupal_render($form); для вывода скрытых полей формы и завершающие теги.

Аватар пользователя direqtor direqtor 24 февраля 2010 в 21:14

Видите ли, каждый элемент формы выдаётся в собственной блочной (div) обёртке. Чтобы запихать что-то внутрь неё, надо вмешиваться в стандартную темизацию этого поля. В вашем случае, насколько я понял, надо несколько полей засунуть в один fieldset, а остальное в другой.

Добавьте в реализацию hook_theme строку
'template' => 'contact-mail-page',

А потом в файле contact-mail-page.tpl.php пропишите

<fieldset>
  <?php print drupal_render($form['поле_1']) .
             drupal_render($form['поле_2']) .
             drupal_render($form['поле_3']) ?>
</fieldaet>
<fieldset><?php print drupal_render($form) ?></fieldaet>
Аватар пользователя gothica@drupal.org gothica@drupal.org 24 февраля 2010 в 22:06

А если, к примеру, мне нужно также обработать элемент на строке 40 в коде ? То как быть?

Пробывал вот так (строка 13) но не получилось, кнопка повяляется на прежнем месте в конце самая последняя

Аватар пользователя gothica@drupal.org gothica@drupal.org 24 февраля 2010 в 22:18

То есть, попытка обернуть input type="submit" эдемент формы внутрь тега < p > не выходит! То есть получается так, после второго fieldseta вставляется тег p и затем же закрывается.. а далее идет кнопка.. но необходимо как раз чтобы кнопка была внутри этого тега p... как быть?