У меня есть простая форма:
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]