• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Forms 2 - Drupal 6 - Полный контроль над формами
 

Forms 2 - Drupal 6 - Полный контроль над формами

on

  • 2,877 views

Vlad Savitsky

Vlad Savitsky
Forms 2
DrupalCampKyiv 2010

Statistics

Views

Total Views
2,877
Views on SlideShare
2,748
Embed Views
129

Actions

Likes
0
Downloads
18
Comments
0

3 Embeds 129

http://camp10.drupal.ua 122
http://www.slideshare.net 4
http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Forms 2 - Drupal 6 - Полный контроль над формами Forms 2 - Drupal 6 - Полный контроль над формами Presentation Transcript

    • Полный контроль на Drupal-формами
    •  
    • Подготовка формы
    • Сборка формы
    • Валидация формы
    • Сохранение формы
    • Рендер формы
    •  
    • Как работает кеширование форм
      • John VanDyk & Matt Westgate «Pro Drupal Development»
      • http://www.drupalbook.com/errata2?page=4
    •  
    •  
    •  
    • Чем можно управлять?
      • Структурой элементов формы
      • Валидацией формы
      • Сабмитом формы
      • Изменять форму после полной сборки
      • Менять можно до и после темизации
      • Управлять темизацией формы
    • Изменение форм из модуля function MODULE _form_alter(&$form, &$form_state, $form_id) { //Добавляем свой submit-обработчик во все формы $form['#submit'][] = '_node_wizard_form_submit'; }
    • Изменение формы по FORM_ID function MODULE _form_ FORM_ID _alter(&$form, &$form_state) { //Добавляем свой submit-обработчик во все формы $form['#submit'][] = '_node_wizard_form_submit'; }
    • #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; }
    • Смена веса модуля В файле MODULE.install /** * Implementation of hook_install(). */ function MODULE_install() { db_query("UPDATE {system} SET weight = 1111 WHERE name = 'MODULE'"); //Отрицательный вес - модуль имеет более высокий //приоритет и выполнится раньше, а более высокое //значение веса (положительное) - модуль имеет более // низкий приоритет исполнения. //Таким образом модули ранжируются по весу на шкале от // минус бесконечности до плюс бесконечность. //Начало выполнения - это минус бесконечность и конец - // плюс бесконечность. Идём от минуса к плюсу. }
      • Хук форм_альтер не вызывается при перестроении формы, если были ошибки валидации
      • Когда вызывается #after_build
    • Полезные ссылки
      • http://api.drupal.ru/api/group/form_api/6
    • Спасибо! Влад Савицкий +38094 928 0632 ICQ: 205535814 Skype: vlad_savitsky [email_address]