forms API

Webform block внутри colorbox.

Аватар пользователя dmitrii.sovkov

Добрый день. Сразу к проблеме.
1. Создал тип материала продукт, создал тип материала webform с тремя полями (имя, телефон, почта), сделал форму доступной как блок.
2. На странице продукта (полная нода) вывел блок формы, в css прописал:

#cboxContent #block-webform-client-block-238 {
    display: none;
}
#cboxContent #block-webform-client-block-238 {
    display: block; /* чтобы форма была видна только в колорбоксе */
}

В шаблоне node-proudct.tpl.php прописал <a href="?width=500&height=250&inline=true#block-webform-client-block-238" class="colorbox-inline">Заказать</a>
3. При клике по этой кнопке открывается форма пример

0 Спасибо

Базовое использование forms API в Drupal

Аватар пользователя Dirst

Формы одна из самых используемых фишек в Drupal, по крайней мере, практически ни одного проекта у меня без них не обходится.
Недавно стало понятно, что у зеленых друпалеров есть проблемы с пониманием откуда у форм в Drupal ноги растут, да и я сам недавно завис при написании нестандартной формы.

Пришло время осветить основные моменты.

При создании формы нам нужны:

  • Страница на которой форма будет распологаться
  • Сама форма
  • Код который будет обрабатывать введенные значения формы

Соответственно, надо ответить на вопросы:

  • Как создать страницу
  • Каким способом сгенерировать форму
  • Как и где написать скрипт с обработкой формы

Создание страницы

0 Спасибо

Как получить список нод для forms?

Аватар пользователя Dr.Osd

Изучил мануал по forms api и хочу сделать свой модуль. В модуле мне нужно получить в виде чекбокс списка список нод определенного типа. Как это можно реализовать?
Ранее никогда не делал свои модули, мало того в PHP не силен. Поэтому прошу не жалеть подробностей.

0 Спасибо

сообщение при переключении на следующий шаг в многошаговой форме

Аватар пользователя g2100636

Пожалуйста помогите сделать такую штуку:
при переключением между шагом в многошаговой форме (вот как тут) (а у меня всего два шага),
после первого шага нужно сделать какбы задержку в секунд 10-15, и в идеале всплывающее окно "пожалуйста подождите, идет обработка информации ...", ну или не всплывающее, а просто снизу формы такое сообщение с гифкой-прогрессбаром..

както джава-скриптом может быть.. но вот как, и куда его пихать?

0 Спасибо

Помогите сделать счетчик нажатий кнопки через ajax в Друпал 7

Аватар пользователя muaddip

Всем добрый день!
Пишу сейчас вывод связанных селектов по этому примеру аналог Hierarhical select. Но мне нужно в связку к двум связанным селектам добавить кнопку или чекбокс, при нажатии на который будет добавляться еще одна пара селектов, и под ними генерироваться снова эта кнопка. То есть можно до бесконечности добавлять пару связанных селектов. При этом предыдущие состояния селектов запоминаются, и выводятся уже выбранными. А если не выбраны, то остается возможность независимо каждый селект выбрать.
Работает все через forms API Друпала и ajax. Проблема возникла в реализации счетчика.
Привожу код:

<?phpfunction hook_form_FORM_ID_alter(&$form, &$form_state, $form_id) {
// Создается статическая переменная для счетчика?>
0 Спасибо

Какой хук можно использовать для изменения данных, передаваемых при сохранении/предпросмотре ноды?

Аватар пользователя RedRat

Имеется модуль, реализующий кастомное поле для Fields API. Нужно во время сохранения или предпросмотра ноды (то есть, после того, как пользователь нажал кнопку Save или Preview) изменить значение, передаваемое формой этого поля. Перерыл всю документацию и код штатных модулей - никаких зацепок! :-(

hook_field_presave() позволяет менять значение поля только перед сохранением, но не при предпросмотре. hook_field_prepare_view() позволяет менять значение поля только при предпросмотре, но не при сохранении. Реализовывать сразу оба хука затруднительно, так как будет меняться не только само значение, но и его формат, а значит - придётся как-то согласовывать работу этих хуков с разными форматами.

0 Спасибо

Как сделать клон формы, только с другим айдишником? чтобы валидировалось и сабмитилось точно также..

Аватар пользователя andreyy05

Здравствуйте. Подскажите люди знающие , как сделать клон формы, т.е чтобы была идентичная форма, отправлялась также, валидировалась, но вызвать ее можно было по другому айдишнику?

Возьмем к примеру форму входа. Обьявляю новую функцию строитель в своем модуле.

0 Спасибо

Можно ли проверять самописную форму с помощью drupal_validate_form()

Аватар пользователя Ne_L

Создал форму, своими средствами, через theme ('textarea')\(textfield)\(submit), мне нужно сделать валидацию введенных данных, можно ли это как то сделать с помощью drupal_validate_form() или самому нужно обработчики писать?
не смог использовать Forms API потому что поля формы создаются с помощью Views а кнопка отправки формы общая.

0 Спасибо

Темизация - обернуть форму в таблицу

Аватар пользователя MaximumofmaX

Есть задача темизовать стандартный вывод формы контактов - обернуть в таблицу.
Исходная выходная вёрстка, как известно, выглядит вот так:

<form class="contact-form" action="/" method="post" id="contact-site-form" accept-charset="UTF-8">
 <div>
  <div class="form-item form-type-textfield form-item-name">
   <label for="edit-name">Your name: <span class="form-required" title="This field is required.">*</span></label>
   <input type="text" id="edit-name" name="name" value="admin" size="18" maxlength="255" class="form-text required" />
  </div>
  <div class="form-item form-type-textfield form-item-mail">
   <label for="edit-mail">Your Email: <span class="form-required" title="This field is required.">*</span></label>
0 Спасибо

Form API неограниченное количество полей

Аватар пользователя Niklan

Доброго времени суток.

Назрел такой вопрос.

Допустим делаем форму которая содержит:

Заголовок и Описание.

Возможно ли сделать кнопку "Добавить еще", чтобы одновременно добавились доп поля "Заголовк и описание", а не одно поле?

0 Спасибо

[РЕШЕНО] ПОМОГИТЕ! после добавления файла block--user--login.tpl.php лезут ошибки, сайт расклеивается((

Аватар пользователя greenteamer

посмотрите по этой ссылке!!! http://bfbrokerage.ru!! было всо хорошо, пока не добавил файл block--user--login.tpl.php якобы для темизации формы регистрации, удалил файл , почистил кэш, вроде все сделал уже ! что делать?

0 Спасибо

Вставить в форму модуля свой select'ор с терминами словаря

Аватар пользователя qm69

Изучаю с api.dripal.ru Справочник Forms API, но не могу найти информации как прикрутить форму select, которая будет выводить термины словаря vid=1 например.

0 Спасибо

Не срабатывает функция form_submit

Аватар пользователя snicksnk

Создал форму под названием
logo_master_option_form

Форма выводится, однако функция

0 Спасибо

Forms API Отобразить textfield между опциями чекбоксов.

Аватар пользователя Dirst

Всем привет, подскажите пожалуйста.

Есть форма в массиве, как на картинке. Есть даже исходник.

<?php
Array ( [1] => Array (  
        [
#type] => checkboxes 
        
[#description] => 
        
[#default_value] => Array ( ) 
        
[#options] => Array ( 
                     
[2] => Зеленые, +$30.00 
                     
[1] => красные, +$30.00 
                     

        [
#required] => 0 
        
[#title] => Валенки 
       

        [
#theme] => uc_attribute_add_to_cart 

        [2] => Array ( 
              [
#type] => checkboxes 
              
[#description] => 
              
[#default_value] => Array ( )
              
[#options] => Array ( 
                           
[4] => Белая, +$30.00 
                           
[3] => Черная, +$30.00 ?>

0 Спасибо

Ctools modal API. Пример использования

Аватар пользователя InternetDevels.com

Новые веяния моды таковы, что попапы обрели высокую популярность среди заказчиков и создается такое ощущение, что идеальный сайт с их точки зрения должен быть в попапе. Для шестого друпала был модуль Popups API. Для семерки его нет, но стараниями Эрла Майлза мы имеем замечательный инструмент - Ctools.

0 Спасибо

#states: Мощное улучшение для разработки интерфейса пользователя в Drupal 7

Аватар пользователя InternetDevels.com

Изначальная идея #states заключается в том, что бы была возможность создания динамических форм без написания JavaScript как такого.

0 Спасибо

Forms API. timestamp из базы пропихнуть на форму. Как?

Аватар пользователя smartchecker

Есть в базе поле в виде timestamp (2011-08-03 17:11:38.288978).
Нужно его выпихнуть на форму через forms api.
Естественно такой кусок работает не так как мне надо.

        $form['request_date'] = array(
            '#title' => t('Дата Заявки'),
            '#type' => 'date',
            '#description' => t('Задайте дату заявки'),
            '#default_value' => array(
                'year' => $request ? format_date($request->request_date,'custom', 'Y') : format_date(time(), 'custom', 'Y'),
                'month' => $request ? format_date($request->request_date,'custom', 'n') : format_date(time(), 'custom', 'n'),
                'day' => $request ? format_date($request->request_date,'custom', 'j') : format_date(time(), 'custom', 'j'),
            )
        );

На форму можно выложить как '#type' => 'date', так и '#type' => 'date_popup'.
Основная задача установить в этот контрол дату из базы.

0 Спасибо

Решено: ahah загрузка и удаление изображений

Аватар пользователя enemis

Здравствуйте уважаемое сообщество. Необходима помощь.
Пишу модуль который загружает для некоторых целей изображения. Пытаюсь выполнить следующее см. рисунок 1. Есть форма для загрузки картинок с помощью ahah. Вот форма передает аргумент add для добавления картинки и номер файла для удаления, когда картинка загружена.
вот у меня получилось, загрузка а вот после нажатия удалить что то происходит не то и страница вроде как субмититься, итолько со второго раза происходит вызов ahah. Мне кажется что то не то делаю и проблема с кешированием форм но как это исправить не пойму помогите пожалуйста.

0 Спасибо

Drupal Forms API. Зависимость отображения от нескольких значений одногоэлемента.

Аватар пользователя qstyler

Привет!
У меня есть группа из трёх чекбоксов.
Мне надо сделать, чтобы текстовое поле отображалось при выборе двух из трёх значений этих чекбоксов.

Тут как обычно:

0 Спасибо