Помогите разобраться.
Есть свой модуль для Drupal 7, который отображает форму:
function module_x_page_form($form, &$form_state) {
$form = array();
$form['name'] = array(
'#type' => 'fieldset',
'#title' => t('First name & Last name'),
'#collapsible' => TRUE, // распахивающийся
'#collapsed' => FALSE, // и не схопнутый по-умолчанию
);
$form['name']['first'] = array(
'#type' => 'textfield',
'#title' => t('First Name'),
'#size' => 60,
'#maxlength' => 128,
);
$form['name']['last'] = array(
'#type' => 'textfield',
'#title' => t('Last Name'),
'#size' => 60,
'#maxlength' => 128,
);
$form['year_of_birth'] = array(
'#type' => 'textfield',
'#title' => t('Year of birth'),
'#description' => t('Format is "YYYY"'),
);
$form['male'] = array(
'#type' => 'select',
'#title' => t('Male / Female'),
'#options' => array(
0 => t('Male'),
1 => t('Female'),),
);
$form['passport_code'] = array(
'#type' => 'textfield',
'#title' => t('Passport code'),
'#size' => 10,
'#maxlength' => 10,
'#description' => t('Input here your Passport Code with passport serial'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
$form['clear'] = array(
'#type' => 'submit',
'#value' => t('Reset form'),
'#validate' => array('module_x_page_my_form_clear'),
);
$form['create_pdf'] = array(
'#type' => 'submit',
'#value' => t('Create PDF'),
'#validate' => array('module_x_create_pdf'),
);
return $form;
}
При нажатии на кнопку
'Create PDF' выполняется валидация всех полей формы, потом в файл PDF записывается вся введенная информация.
Проблема в том, что после выполнения хука валидации
module_x_create_pdf() автоматически выполняется хук
form_submit() вся информация попадает в базу данных и обнуляются все введенные поля на форме.
Нужно прикрутить к кнопке
$form['create_pdf'] - свой обработчик submit, который после валидации запустит свой обработчик submit, который только запишет в файл PDF введенную информацию.