У меня простая форма:
function mymodule_test_form(&$form_state, $nid) {
form['submit'] = array(
'#type' => 'submit',
'#value' => 'Click me!',
);
$form['mymodule_status'] = array(
'#type' => 'select',
'#attributes' => array('class' => 'myclass'),
'#default_value' => variable_get('mymodule_status', 0),
'#options' => array('one', 'two', 'three', 'four', 'five'),
);
return $form;
}
function mymodule_test_form_submit($form, &$form_state) {
global $user;
db_query("INSERT INTO {mymodule} (nid, uid, number, created) VALUES (%d, %d, %d, " . time() . ")", $nid, $user->uid, $status);
}
И в моем файле node-contenttype.tpl.php я печатаю drupal_get_form ('mymodule_test_form', $ node-> nid). Кстати, это правильный способ распечатать drupal_get_form в шаблоне? Я попытался добавить drupal_get_form в состояние представления hook_nodeapi, но ничего не выводит, поэтому я просто напечатал его в шаблоне.
Другое дело - значение по умолчанию, я не знаю, как его использовать. Значение variable_get всегда равно 0. Нужно ли мне создавать собственный запрос и устанавливать его в качестве значения по умолчанию? Я думал, что default_value автоматически получает drupal или что-то в этом роде ...
Надеюсь, мне помогут. Спасибо.
Изменить: выяснилось, что идентификатор узла находится под: $ form ['# parameters'] [2]