Probleme mit form_alter() -> Formular speichert nicht
am 17.01.2009 - 21:45 Uhr in
Hallo zusammen,
ich beschäftige mich erst seit kurzem mit Drupal, von daher bitte ich um Nachsicht, falls es sich bei meinem Problem schlicht und ergreifend um Dummheit handeln sollte. ;-)
Es geht darum, dass ich ein Formular um eine Checkbox erweitern möchte. Die Checkbox möchte ich programmatisch hinzufügen. Mit Sicherheit ginge das mit dem CCK wesentlich einfacher, ich möchte aber Grundlagen-Studium betreiben. :-)
Soweit ich das verstehe, sollte das über hook_form_alter() funktionieren. Tut es aber leider nicht. Ich habe mir von api.drupal.org folgenden Code kopiert:
<?php
function hook_form_alter(&$form, $form_state, $form_id) {
//if (isset($form['type']) && $form['type']['#value'] .'_node_settings' == $form_id) {
if($form_id == 'node_type_form') {
$form['workflow']['upload_'. $form['type']['#value']] = array(
'#type' => 'radios',
'#title' => t('Attachments'),
'#default_value' => variable_get('upload_'. $form['type']['#value'], 1),
'#options' => array(t('Disabled'), t('Enabled')),
);
}
}
?>
und leicht angepasst (s. IF, damit es nur innerhalb der Content-Types läuft) in ein eigenes Modul eingefügt.
Die Radio-Buttons werden nun brav angezeigt, ich kann auch zwischen Disabled und Enabled umschalten - nur leider speichert das Formular die Werte nicht! Jedesmal, wenn ich die Seite wieder öffne, steht das Feld auf Enabled.
Kann mir jemand sagen, was ich übersehe und/oder verkehrt mache?
Danke
dabbeljuh
- Anmelden oder Registrieren um Kommentare zu schreiben
<?phpfunction
am 24.01.2009 - 12:03 Uhr
<?php
function hook_form_alter(&$form, $form_state, $form_id) {
//if (isset($form['type']) && $form['type']['#value'] .'_node_settings' == $form_id) {
if($form_id == 'node_type_form') {
$form['workflow']['upload'] = array(
'#type' => 'radios',
'#title' => t('Attachments'),
'#default_value' => variable_get('upload_'. $form['type']['#value'], 1),
'#options' => array(t('Disabled'), t('Enabled')),
);
}
}
?>
So sollte es funktionieren...
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING