Hinzufügen von js zu einem drupal-Knoten form
In Drupal erstellen Sie Ihre eigenen nodetype in ein custom-Modul. Dies zu tun, Sie bekommen, um erstellen Sie Ihr eigenes Formular, das ist alles sehr schön.
Jedoch, wenn Sie hinzufügen möchten js das Formular, werden die Dinge ein wenig komplizierter. Wenn Sie fügen Sie die js in der form, die js wird nur dann Hinzugefügt werden, bilden die form, wenn es geladen wird. Wenn der Benutzer würde die post das Formular-überprüfungs-Fehlern ist, die form, Funktion nicht erneut ausgeführt und damit das js nicht Hinzugefügt. Normalerweise würde man einfach ein Menü erstellen, Rückruf und fügen Sie die js da, aber für die node-add-Formular, das nicht eine mögliche Lösung.
Also, was ist die beste Lösung für das hinzufügen von js in ein node-Formular hinzufügen, um Sie persistent, wenn das Formular nicht validieren?
- Das gleiche auf Drupal Antworten: drupal.stackexchange.com/questions/70015/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, einige andere hacks, fand ich eine Recht einfache Lösung dieses Problems, erstellen einer theme-Funktion für das Formular und fügen Sie die js dort. Das würde in etwa so Aussehen:
Dieser ruft einfach den default theme-Funktion für das node-add-Formular nach dem hinzufügen des js. Als theme-Funktion aufgerufen wird, auch die form zwischengespeichert wird, dies funktioniert gut. Sie müssen auch umsetzen hook_theme um diese Arbeit zu machen.
Update für Drupal 7.
Drupal 7 macht das viel einfacher, da es möglich ist, zu tun
Ein Beispiel HIERFÜR könnte sein:
theme('node_form')
am Ende vielleicht auch die Berufung auf die überschreibung wieder auf. Wäre es nicht besser, diedrupal_add_js
Aufruf in einertheme_preprocess
Funktion?<module name>_form_<form id>_alter
.Ich habe eine patch auf der Smilies Modul, das dieses problem behebt: Smilies sind nicht wählbar, wenn eine Wiedervorlage Seite
Den patch fügt eine hook_nodeapi () - Funktion, um zu überprüfen, ob die Knoten-operation "verifizieren" und wenn es ist, es wird überprüft ob der Knoten haben soll, smileys und wenn ja, ruft die Funktion zum hinzufügen von smileys.js javascript-Datei, die erstellt die Auswahl form.
Sollten Sie gerade brauchen, um das gleiche zu tun in Ihrem Fall. Dies erfordert, dass Sie schreiben, ein sehr einfaches Modul, die die Funktion hook_nodeapi und prüft, ob updates in der gleichen Weise die gepatchte Smileys-Modul.
Können Sie Benutzer
hook_nodeapi
mit Fallprepare
:Beispiel:
Jetzt können Sie fügen Sie Ihren javascript-code in den Modul-Ordner z.B.
myscript.js
.