hook_form_alter[gelöst]
am 18.08.2009 - 08:40 Uhr in
Hallo,
Ich habe folgendes Problem:
Es wurde von einem externen Modul ein Inhaltstyp erstellt, bei dem man mehrere textfelder im Erstellungsformular ausfüllen kann. Zusätzlich wurden von weiteren externen Modulen dem Erstellungsformular dieses Inhaltstypen über hook_form_alter neue Textfelder hinzugefügt.
Ich möchte jetzt das Erstellungsformular über hook_form_alter selbst noch etwas anpassen, z. Bsp. Default-Werte festlegen, Fieldsets standardmäßig einklappen, einige Felder entfernen usw. Nur hab ich das Problem, das im $form - Parameter nur die Formelemente zu finden sind, die mit dem Inhaltstypen erstellt wurden. Alle Felder, die durch die anderen externen Module erstellt wurde, sind dort nicht zu finden, da diese ja auch mit hook_form_alter hinzugefügt wurden.
Jetzt die Frage: wie kann ich das komplette Formular bearbeiten, bzw. wie kann ich festlegen, das mein hook_form_alter nach den anderen aufgerufen wird?
- Anmelden oder Registrieren um Kommentare zu schreiben

weight
am 18.08.2009 - 08:52 Uhr
Moin.
Der Modulcode wird anhand der Reihenfolge der Module in der Tabelle system ausgeführt. Höchstwahrscheinlich landet Dein Modul in der sortierten Liste vor dem anderen Modul, so dass dessen Änderungen erst später gemacht werden.
Jedoch kannst Du die Reihenfolge selbst über die Gewichtung des Moduls selbst bestimmen. Dazu setzt Du bei der Installation Deines Moduls (in hook_install) einfach in der Tabelle system eine Wert grösser "0" (bzw. grösser dem Wert, den das andere Modul hat) für die Spalte "weight".
Alternativ kannst Du den Wert auch schnell per Hand in der Tabelle setzen.
Und noch ein Tipp nur so zur Info:
hook_form_FORM_ID_alter()wird *immer* vorhook_form_alterausgeführt.hth,
Stefan
--
sei nett zu Deinem Themer
Jo vielen dank, genau nach
am 18.08.2009 - 09:08 Uhr
Jo vielen dank, genau nach sowas hab ich gesucht. funktioniert einwandfrei.