Drupal → Аргументы основных Form API функций

09.03.2011

Постоянно вылетают из головы аргументы функций из Form API. На память:

/**
 * Page callback
 */
function module_page_callback($foo) {
  return drupal_get_form('module_form', $foo);
}

/**
 * Form. Drupal 6
 */
function module_some_form(&$form_state, $foo) {
  // ...
  $form['#after_build'] = array('module_form_after_build');
  return $form;
}

/**
 * Form. Drupal 7
 */
function module_some_form($form, &$form_state, $foo) {
  // ...
  $form['#after_build'] = array('module_form_after_build');
  return $form;
}

/**
 * Form after build callback
 */
function module_form_after_build($form, &$form_state) {
  // ...
  return $form;
}

/**
 * Form validate
 */
function module_form_validate($form, &$form_state) {
  $values = $form_state['values'];
  // ...
}

/**
 * Form submit
 */
function module_form_submit($form, &$form_state) {
  $values = $form_state['values'];
  // ...
}

/**
 * Implement hook_form_alter()
 */
function module_form_alter(&$form, &$form_state, $form_id) {
  // ...
}

/**
 * Implement hook_form_FORM_ID_alter(). Drupal 6
 */
function module_form_someform_alter(&$form, &$form_state) {
  // ...
}

/**
 * Implement hook_form_FORM_ID_alter(). Drupal 7
 */
function module_form_someform_alter(&$form, &$form_state, $form_id) {
  // ...
}
Похожие записи

Комментарии

Вместо return drupal_get_form('module_form', $foo); удобней сразу в hook_menu указать drupal_get_form в качестве callback функции:

function module_menu() {    
  ...
  'page callback' => 'drupal_get_form',
  'page arguments' => array('module_form', 1),
  ...
}

В друпал 7 у конструктора форм поменяли сигнатуру, теперь запомнить легче, везде одинаково ... ($form, &$form_state).

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