Вот мой пользовательский модуль, использующий крюк,
Предположим, если я хочу передать аргумент в вызов функции custom1_default_form, как мне передать аргумент?
<code><?php
function custom1_block($op,$delta=0){
if($op=='list'){
$block = array();
$block[0]['info']=t('hello world');
return $block;
}else if($op=='view'){
$block_content = '<p>THIS IS MY FIRST BLOCK</p>';
$block['subject'] = 'HELLO WORLD';
$block['content'] =drupal_get_form('custom1_default_form');
return $block;
}
}
function custom1_default_form () {
$form = array();
$form['nusoap_urls']['txt_name'] =
array('#type' => 'textfield',
'#title' => t('Please enter your name'),
'#default_value' => variable_get('webservice_user_url',''),
'#maxlength' => '40',
'#size' => '20',
// '#description' => t('<br />Root directory used to present the filebrowser user interface.')
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save Details'),
);
return $form;
}
function custom1_default_form_validate (&$form, &$form_state) {
if(($form_state['values']['txt_name']) == '') {
form_set_error('user_webservice', t('Enter a name'));
}
}
function custom1_default_form_submit ($form_id, $form_values) {
// drupal_set_message( print_r($_POST));
// $message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_state['values'],true) . '
';
// drupal_set_message (т ($ сообщение));
// drupal_set_message (т ($ form_values [ 'значения'] [ 'txt_name']));
// print_r ($ form_values ['values']);
$ GET_TXT_FIELD_VALUE = $ form_values ['values'] ['txt_name'];
$ INSERT_QUERY = "INSERT INTO sample (test_name) VALUES ('$ GET_TXT_FIELD_VALUE')";
if (db_result (db_query ("SELECT COUNT (*) FROM {sample} WHERE test_name = '% s';", $ GET_TXT_FIELD_VALUE))) {
// Пользователь не существует
drupal_set_message (t ('УЖЕ СУЩЕСТВУЕТ .....'));
} Еще {
db_query ($ INSERT_QUERY) или die ('Ошибка выполнения');
если (db_affected_rows () == 1) {
drupal_set_message (t ('VALUE INSERTED SUCCESSFULLY'));
} Еще {
drupal_set_message (t ('VALUE INSERTED FAILED'));
}
}
}