(gelöst) Drupal hooks
am 22.12.2011 - 10:12 Uhr in
Hallo, irgendwie bekomm ich es nicht hin ein Formular per hook zu bearbeiten. In dem fall möchte ich eigentlich nur von einem Formular ein paar dinge ausbleden. Ich glaub ich versteh das themingsystem von hooks nicht ?! Wenn ich nun von einem Inhalttype das Formular haben möchte, wie muss ich da vor gehen ?
<?php
//Das sample zeigt "mymodule" ? Was muss ich da dann setzt ? ich möchte ja ein formular ändern content ? oder den name des inhaltstypes ? Irgendwie versteh ich //nicht ganz wie das geht ...
/**
* Implementation of hook_form_alter()
*/
function mymodule_form_alter(&$form, $form_state, $form_id) {
drupal_set_message("Form ID is : " . $form_id);
}
?>gruß hacky
- Anmelden oder Registrieren um Kommentare zu schreiben

Die Form-ID des Formulars
am 22.12.2011 - 10:29 Uhr
Die Form-ID des Formulars kannst Du immer im Quellcode der Seite, die das Formular zeigt, auslesen. Da gibt es ein hidden Field mit der Form-ID.
In der Funktion deinmodul_form_alter fragst Du jetzt ab, ob die ID den gewünschten Wert hat, dann kommen Deine Änderungen am $form-Array, oder anderfalls gibt es ein return ohne Änderungen.
Manche Änderungen sind aber erst zu einem späteren Zeitpunkt möglich, vor allem bei Widgets. Dann mußt Du eine "After-Build" Funktion definieren, die Du in Deinem Modul schreibst, die dieselben Parameter hat
$form['#after_build'][] = 'myown_after_build';und später dannfunction myown_after_build ($form, &$form_state, $form_id) {//Dein Code kommt hierhin z.B.
// Supress menu tab in node form
unset($form['menu']);
return $form;
}
Beste Grüße
Werner
Hallo Werner, danke für deine
am 22.12.2011 - 11:11 Uhr
Hallo Werner, danke für deine Antwort.Okay soweit verstanden, also muss ich mir erst ein modul schreiben damit ich auf die form_ids zugreifen kann ?
Ja, für die Funktionen
am 22.12.2011 - 11:20 Uhr
Ja, für die Funktionen hook_form_alter() oder hook_form_FORMID_alter() brauchst Du ein eigenes (Mini-) Modul. Installiere Dir noch des Modul Devel, dann kannst Du Dir in Deinen Funktionen mittels print dsm($form) das Form-Array ordentlich ausgeben. Aber nicht erschrecken. Die Ausgabe ist mitunter etwas länglich :-). Aber nur so siehst Du die Struktur und die einzelnen Bausteine. Außerdem solltest Du dich mit der Dokumentation der Form-API auf Drupal.org befassen. Das ist dabei nun mal die Basis.
Beste Grüße
Werner
Year das ist echt mächtig
am 22.12.2011 - 11:41 Uhr
Year das ist echt mächtig cool! vielen dank =)