Вы скачиваете модуль, устанавливаете его - в нем много подмодулей самых разных направлений в разработке под друпал. В том числе и формы.
Далее смотрите код. Подмодуль называется form_example. Его и смотрите.
По сути вся форма состоит из трех шагов.
1. сама форма, объявляется через хук hook_form() {...}.
2. валидация - проверяется через hook_form_validate() {...}
3. сабмит - hook_form_submit() {...}
простой пример модуля с формой.
назовем модуль useformapi.
function useformapi_form_validate($form, &$form_state){ $value_name = $form_state['values']['name']; if($value_name == ''){ form_set_error('name', t('Enter a value!')); } }
И сам сабмит
function useformapi_form_submit($form, &$form_state){ $value_name = $form_state['values']['name']; drupal_set_message(t('Values is !value', array('!value' =>$value_name))); }
Все.
По сути, вы используете 3 функции.
1. Определение формы - function {formname}_form() {...}.
2. Валидация - function {formname}_form_validate($form, &$form_state) {...}
2. Сабмит - function {formname}_form_submit($form, &$form_state) {...}
Пока вы не попробуете сами, я не смогу объяснить ) Но там все просто. Вплоть до темизации всяких уникальных компонентов для форм (ползунки там всякие и прочая ересь).
Вы скачиваете модуль, устанавливаете его - в нем много подмодулей самых разных направлений в разработке под друпал. В том числе и формы.
Далее смотрите код. Подмодуль называется form_example. Его и смотрите.
По сути вся форма состоит из трех шагов.
1. сама форма, объявляется через хук hook_form() {...}.
2. валидация - проверяется через hook_form_validate() {...}
3. сабмит - hook_form_submit() {...}
простой пример модуля с формой.
назовем модуль useformapi.
function useformapi_form_validate($form, &$form_state){ $value_name = $form_state['values']['name']; if($value_name == ''){ form_set_error('name', t('Enter a value!')); } }
И сам сабмит
function useformapi_form_submit($form, &$form_state){ $value_name = $form_state['values']['name']; drupal_set_message(t('Values is !value', array('!value' =>$value_name))); }
Все.
По сути, вы используете 3 функции.
1. Определение формы - function {formname}_form() {...}.
2. Валидация - function {formname}_form_validate($form, &$form_state) {...}
2. Сабмит - function {formname}_form_submit($form, &$form_state) {...}
Пока вы не попробуете сами, я не смогу объяснить ) Но там все просто. Вплоть до темизации всяких уникальных компонентов для форм (ползунки там всякие и прочая ересь).
Вы скачиваете модуль, устанавливаете его - в нем много подмодулей самых разных направлений в разработке под друпал. В том числе и формы.
Далее смотрите код. Подмодуль называется form_example. Его и смотрите.
По сути вся форма состоит из трех шагов.
1. сама форма, объявляется через хук hook_form() {...}.
2. валидация - проверяется через hook_form_validate() {...}
3. сабмит - hook_form_submit() {...}
простой пример модуля с формой.
назовем модуль useformapi.
function useformapi_form_validate($form, &$form_state){ $value_name = $form_state['values']['name']; if($value_name == ''){ form_set_error('name', t('Enter a value!')); } }
И сам сабмит
function useformapi_form_submit($form, &$form_state){ $value_name = $form_state['values']['name']; drupal_set_message(t('Values is !value', array('!value' =>$value_name))); }
Все.
По сути, вы используете 3 функции.
1. Определение формы - function {formname}_form() {...}.
2. Валидация - function {formname}_form_validate($form, &$form_state) {...}
2. Сабмит - function {formname}_form_submit($form, &$form_state) {...}
Пока вы не попробуете сами, я не смогу объяснить ) Но там все просто. Вплоть до темизации всяких уникальных компонентов для форм (ползунки там всякие и прочая ересь).
С файлами все понятно, но с хуками не понятно. Не могу найти данные хуки.
Дело в том, что не все достаточно задокументировано. Некоторые моменты этого просто не требуют.
Хотя да, действительно, именно по валидации и сабмиту четкой документации нетЪ (на орге).
Дело в том, что не все достаточно задокументировано. Некоторые моменты этого просто не требуют.
Хотя да, действительно, именно по валидации и сабмиту четкой документации нетЪ (на орге).
Комментарии
https://www.google.com.ua/search?q=form_api+drupal+7
есть такой модуль, examples
https://www.drupal.org/project/examples
в нем куча примеров с комментариями как и что работает
Не понятно как им пользоваться.Например включил я Form example, а дальше что.? Где смотреть сам код?
Вы скачиваете модуль, устанавливаете его - в нем много подмодулей самых разных направлений в разработке под друпал. В том числе и формы.
Далее смотрите код. Подмодуль называется form_example. Его и смотрите.
По сути вся форма состоит из трех шагов.
1. сама форма, объявляется через хук hook_form() {...}.
2. валидация - проверяется через hook_form_validate() {...}
3. сабмит - hook_form_submit() {...}
простой пример модуля с формой.
назовем модуль useformapi.
1. Создаем папку useformapi.
2. Создаем внутри паки useformapi файл useformapi.info .
package = My modules
core = 7.x
2. Создаем внутри паки useformapi файл useformapi.module .
В нем я определю страницу по ссылке с формой.
* Implements hook_menu().
*/
function useformapi_menu() {
$items['useformapipage'] = array(
'title' => 'How to use form api?',
'page callback' => 'drupal_get_form',
'page arguments' => array('useformapi_form'),
'access callback' => TRUE,
'type' => MENU_DEFAULT_LOCAL_TASK,
);
}
Теперь сама форма
$form['description'] = array(
'#type' => 'item',
'#title' => t('Description of current form'),
);
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Test text field'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
Далее - валидация
$value_name = $form_state['values']['name'];
if ($value_name == '') {
form_set_error('name', t('Enter a value!'));
}
}
И сам сабмит
$value_name = $form_state['values']['name'];
drupal_set_message(t('Values is !value', array('!value' => $value_name)));
}
Все.
По сути, вы используете 3 функции.
1. Определение формы - function {formname}_form() {...}.
2. Валидация - function {formname}_form_validate($form, &$form_state) {...}
2. Сабмит - function {formname}_form_submit($form, &$form_state) {...}
Уже далее, если нужно менять какие либо свойства, или другие елементы - смотрите https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.h...
Пока вы не попробуете сами, я не смогу объяснить ) Но там все просто. Вплоть до темизации всяких уникальных компонентов для форм (ползунки там всякие и прочая ересь).
Теперь понятно. Единственное что значат эти файлы в модуле. И все же https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7 я не нашел описание хуков hook_form_submit, hook_form_validate.
С файлами все понятно, но с хуками не понятно. Не могу найти данные хуки.
Дело в том, что не все достаточно задокументировано. Некоторые моменты этого просто не требуют.
Хотя да, действительно, именно по валидации и сабмиту четкой документации нетЪ (на орге).
Спасибо.
первый же в индексе по ключу form_api drupal 7
кой чего для старта да и есть)
https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#validate
где ж апи как не на api.drupal.org )))
Не, это понятно.
Но я о том, что функции не описаны отдельно, как например, тот же hook_menu и т.д..
А так одного examples должно быть достаточно.