Всем привет!Вопрос такой. У меня есть webform и мне нужно ее темизировать...Скачал файл webform-form.tpl.php в папку с темой и обозвал его webform-form-[id моей ноды].tpl.php. У меня уже есть кусок html-кода, я его туда вставил, теперь нужно просто по местам расставить нужные поля. Пытаюсь вставить как написано тут. Например, у меня есть поле "Ф.И.О" его ключ fio. И я в нужное вместо вставляю
но почему-то нужный input не вставляется. Подскажите, пожалуйста, что я неправильно делаю?
Комментарии
не понял, почему у вас
<?=drupal_render
. Должно быть просто<? drupal_render
ну на странице по ссылке так указано...тем более что = в данном случае то же что и print, а перед drupal_render он нужен
строки
<?php
// Always print out the entire $form. This renders the remaining pieces of the
// Print out the main part of the form.
// Feel free to break this up and move the pieces within the array.
print drupal_render($form['submitted']);
// form that haven't yet been rendered above.
print drupal_render_children($form);
?>
выводят всю форму, а отдельные поля формы почему то не выводятся...в самом массиве $form['submitted']['fio'] данные о поле есть print_r проверял...
да, верно, должно быть не
<?=drupal_render
a<? print drupal_render
А отдельные поля вы выводите до drupal_render_children($form) или после?
После...а это важно???<? print drupal_render я тоже пробовал...
drupal_render_children($form) отмечает все элементы как отрендеренные, соответсвенно второй раз, когда вы вызываете рендер отдельных элементов, друпал видет что элемент уже отрендерен и пропускает его
drupal_render_children($form) поставил в самый конец, обновил и почистил кэш....увы не помогло(((
ООО...а вот сейчас закомментил print drupal_render($form['submitted']) и вывелся input)) Причем вывелся вместе с лэйблом "Ф.И.О" а как мне вывести без лэйбла?чисто input?
Или скрыть лэйбл, или добавит в массив поля формы settings со значением array('lable'=>false). Не помню точно, завтра напишу.
Спасибо огромное!!!Ваши советы реально помогли!
2 divined скрыл лэйбл...
2 Worth действительно нужно было
<?php <? print drupal_render_children($form); ?>
переместить в самый низ...а я что то не догадался и не понял этого...может потому что поздно уже и голова не варит...Все отлично!Таким образом даже CAPTCHA успешно интегрировалась. Остался самый последний вопрос, чтобы уже поставить РЕШЕНО. Вот есть шаблон webform-confirmation.tpl.php - здесь настраивается вывод в случае успешного отправления письма. А где шаблон в котором настраивается вывод информации в случае ошибки, я понимаю что данные об ошибке заносятся в переменную $messages, я ее и вывожу, но вместе с тем также выводится и сама webform в область контента , а мне этого не нужно, так как webform у меня в отдельном блоке и получается форма дублируется 2 раза: в блоке и в контенте. Мне нужно настроить так чтобы если происходит ошибка выводилась только переменная $messages а форма нет. Это с помощью какого шаблона настроить? я что то не понял, подскажите плиз!!
Eto vozmojno s pomosh'u AJAX validacii.
Est' vrode modul "webform ajax" on pomojet vivodit' oshibki srazu v formu.
Forma pri submite iz blocka peredaet znachenia na stranicu s formoi i uje tam pokazivaet oshibki.
Webform AJAX pomojet otpravlyat' dannie napryamu'u.
Ili est' modul AJAX VALIDATION, no ego nado propisivat' v javascript faile.
Спасибо за помощь парни!!!Попробую!!!)
Насколько понял, таким способом можно добавит обертку любому элементу формы.
А как просто добавить css-класс к инпутам?
">https://api.drupal.org/api/drupal/includes%21form.inc/function/theme_for...