Forms 2 - Drupal 6 - Полный контроль над формами
-
Upload
andriy-podanenko -
Category
Technology
-
view
3.472 -
download
6
description
Transcript of Forms 2 - Drupal 6 - Полный контроль над формами
![Page 1: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/1.jpg)
Полный контроль на Drupal-формами
![Page 2: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/2.jpg)
![Page 3: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/3.jpg)
Подготовка формы
![Page 4: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/4.jpg)
Сборка формы
![Page 5: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/5.jpg)
Валидация формы
![Page 6: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/6.jpg)
Сохранение формы
![Page 7: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/7.jpg)
Рендер формы
![Page 8: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/8.jpg)
![Page 9: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/9.jpg)
Как работает кеширование форм
John VanDyk & Matt Westgate «Pro Drupal Development»
• http://www.drupalbook.com/errata2?page=4
![Page 10: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/10.jpg)
![Page 11: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/11.jpg)
![Page 12: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/12.jpg)
![Page 13: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/13.jpg)
Чем можно управлять?
Структурой элементов формы Валидацией формы Сабмитом формы Изменять форму после полной сборки Менять можно до и после темизации Управлять темизацией формы
![Page 14: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/14.jpg)
Изменение форм из модуля
function MODULE_form_alter(&$form, &$form_state, $form_id) {//Добавляем свой submit-обработчик во все формы$form['#submit'][] = '_node_wizard_form_submit';
}
![Page 15: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/15.jpg)
Изменение формы по FORM_ID
function MODULE_form_FORM_ID_alter(&$form, &$form_state) {//Добавляем свой submit-обработчик во все формы$form['#submit'][] = '_node_wizard_form_submit';
}
![Page 16: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/16.jpg)
#after_build $form['file_directory_path'] = array( '#type' => 'textfield', '#title' => t('File system path'), '#default_value' => file_directory_path(), '#maxlength' => 255, '#description' => t('A file system ... on an existing site.'), '#after_build' => array('system_check_directory'), );
function MODULE_form_alter($form, &$form_state) { $form['#after_build'][] => 'system_check_directory';}
function system_check_directory($form_element, &$form_state) { file_check_directory($form_element['#value'],
FILE_CREATE_DIRECTORY, $form_element['#parents'][0]); return $form_element;}
![Page 17: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/17.jpg)
Смена веса модуляВ файле MODULE.install/** * Implementation of hook_install(). */function MODULE_install() { db_query("UPDATE {system} SET weight = 1111 WHERE name
= 'MODULE'"); //Отрицательный вес - модуль имеет более высокий //приоритет и выполнится раньше, а более высокое //значение веса (положительное) - модуль имеет более // низкий приоритет исполнения. //Таким образом модули ранжируются по весу на шкале от // минус бесконечности до плюс бесконечность. //Начало выполнения - это минус бесконечность и конец - // плюс бесконечность. Идём от минуса к плюсу.}
![Page 18: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/18.jpg)
Хук форм_альтер не вызывается при перестроении формы, если были ошибки валидации
Когда вызывается #after_build
![Page 19: Forms 2 - Drupal 6 - Полный контроль над формами](https://reader036.fdocument.pub/reader036/viewer/2022081414/54b6b1e64a79597b0c8b45f9/html5/thumbnails/19.jpg)
Полезные ссылки
• http://api.drupal.ru/api/group/form_api/6