[gelöst]Feld in einem Formular beim Speichern ändern
Eingetragen von Praktikant (49)
am 12.01.2013 - 16:02 Uhr in
am 12.01.2013 - 16:02 Uhr in
Hallo zusammen,
hier erstmal mein Problem.
<?php
function dynamic_taxonomy_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'dienstplaneintrag_node_form'){
$form['#submit'][] = 'my_submit_handler';
}
}
function my_submit_handler($form, &$form_state)
{
global $user;
$user = user_load($user->uid);
$form['title']['#value'] = $user->name;
}
?>
Warum geht das nicht?
In meinem Modul überschreibe ich, für den Fall eines bestimmten Inhaltstypen den Submit-Handler.
Sobald der dann aufgerufen wird, soll der Name des momentan angemeldeten Benutzers in die Titelzeile geschrieben werden.
Was vorher drinsteht soll überschrieben werden.
Das passiert allerdings nicht. Warum?
Da es ein Modul in Entwicklung ist, müssen wir uns nicht über Sinn und Unsinn der Modulfunktion streiten. Es geht mir um die
Art und Wiese wie ich Felder, quasi vor dem Abspeichern, bearbeiten kann.
Für Denkanstöße wäre ich dankbar.
- Anmelden oder Registrieren um Kommentare zu schreiben
da fehlt die referenz & auf
am 12.01.2013 - 16:19 Uhr
da fehlt die referenz &
auf form
also statt
function my_submit_handler($form, &$form_state)
function my_submit_handler(&$form, &$form_state)
Hab ich mal ergänzt. Geht
am 12.01.2013 - 17:40 Uhr
Hab ich mal ergänzt. Geht aber immer noch nicht.
Ist es vielleicht $form_state
am 12.01.2013 - 19:40 Uhr
Ist es vielleicht $form_state statt $form, was Du ändern musst??? Ist jetzt nur mal so ins Blaue geraten...
Such mal in der Drupal API
am 13.01.2013 - 00:08 Uhr
Such mal in der Drupal API nach [api:hook_field_presave] oder auch [api:hook_node_presave].
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
vielleicht einfach mal mit
am 13.01.2013 - 13:04 Uhr
vielleicht einfach mal mit rules probieren. das sollte gehen
C.A.W. Webdesign
Mit hook_nodes_presave hab
am 13.01.2013 - 15:48 Uhr
Mit hook_node_presave hab ich es hinbekommen.
Vielen Dank für den Input