Как можно темизировать форму контаков, чтобы она выглядела например, как тут http://cssglobe.com/collections/forms/ ? (Form 3). С чего начать, за что браться?
Как можно темизировать форму контаков, чтобы она выглядела например, как тут http://cssglobe.com/collections/forms/ ? (Form 3). С чего начать, за что браться?
Комментарии
Стоит поискать и сразу найдёшь вот это. В остальном поможет CSS.
Застрял на данном этапе:
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?
drupal_render($form['имя_поля']);
выведет одно из полей. Вывод можно вставить, например в ячейку таблицы. Так же все остальные видимые поля. В концеdrupal_render($form);
для вывода скрытых полей формы и завершающие теги.Не совсем понятно, как все же добавить тег fieldset между 3 и 4 стройчкой в этом коде
Видите ли, каждый элемент формы выдаётся в собственной блочной (div) обёртке. Чтобы запихать что-то внутрь неё, надо вмешиваться в стандартную темизацию этого поля. В вашем случае, насколько я понял, надо несколько полей засунуть в один fieldset, а остальное в другой.
Добавьте в реализацию hook_theme строку
'template' => 'contact-mail-page',
А потом в файле contact-mail-page.tpl.php пропишите
<?php print drupal_render($form['поле_1']) .
drupal_render($form['поле_2']) .
drupal_render($form['поле_3']) ?>
</fieldaet>
<fieldset><?php print drupal_render($form) ?></fieldaet>
да, теперь стало яснее, а если предположим, я хочу доавить не просто fieldset а с каким нибудь css классом, т.е. fieldset class="class_name" ... ?
Без проблем. Можно еще сюда поглядеть [ru-api=theme_fieldset]
А если, к примеру, мне нужно также обработать элемент на строке 40 в коде ? То как быть?
Пробывал вот так (строка 13) но не получилось, кнопка повяляется на прежнем месте в конце самая последняя
То есть, попытка обернуть input type="submit" эдемент формы внутрь тега < p > не выходит! То есть получается так, после второго fieldseta вставляется тег p и затем же закрывается.. а далее идет кнопка.. но необходимо как раз чтобы кнопка была внутри этого тега p... как быть?
РЕШЕНО. нужно было drupal_render($form['submit']);
Просматривайте переменные перед использованием. Используйте такие функции:
var_dump($var);
krumo_ob($var);
dpm($var);
спасибо, возьму на заметку!