drupal 7 webform placeholder

Дата публикации: 11 12 2013 Автор: PazitiFF

Сегодня я бы хотел поделиться с вами, как я делаю 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 полей формы

 

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>, <apache>, <bash>, <css>, <drupal6>, <html5>, <javascript>, <mysql>, <php>.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.