drupal 7 webform placeholder
Сегодня я бы хотел поделиться с вами, как я делаю placeholder для модуля webforms drupal 7
Сначала нужно создать форму, о том как это делается, отлично описано в данной статье
Но модуль webforms не даёт сделать из коробки модный нынче placeholder, но это легко поправимо.
В файлик template.php своей темы, нужно (Осмысленно) добавить следюющее:
<?php function THEME_NAME_form_alter(&$form, &$form_state, $form_id) { if ($form_id == 'WEB_FORM_ID') { // Пример: "webform_client_form_26" foreach ($form["submitted"] as $key => $value) { if (in_array($value["#type"], array("textfield", "webform_email", "textarea"))) { $form["submitted"][$key]['#attributes']["placeholder"] = t($value["#title"]); $form["submitted"][$key]['#attributes']["onfocus"] = "this.placeholder = ''"; $form["submitted"][$key]['#attributes']["onblur"] = "this.placeholder =" . "'" . t($value["#title"]) . "'"; $form["submitted"][$key]['#title_display'] = 'invisible'; } } } } ?>
Далее расшифрую, что делает функция и значения, которые нужно подставить:
THEME_NAME - имя активной темы.
WEB_FORM_ID - id формы, в которую вносим изменения. Узнать id можно распечатав внутри функции массив $form_id. ID формы выглядит примерно так 'webform_client_form_26'
Функция проходит по массиву формы и добавляет в неё некоторые элементы:
$form["submitted"][$key]['#attributes']["placeholder"] = t($value["#title"]); - Добавляет элемент placeholder и его значение
$form["submitted"][$key]['#attributes']["onfocus"] = "this.placeholder = ''"; - Добавляет элемент onfocus, который стирает placeholder при клике на поле формы
$form["submitted"][$key]['#attributes']["onblur"] = "this.placeholder =" . "'" . t($value["#title"]) . "'"; - Дабавялет элемент onblur, который подставляет placeholder, при уходе с поля формы
$form["submitted"][$key]['#title_display'] = 'invisible'; - Скрывает title полей формы
Добавить комментарий