Checkboxen dynamisch zu Profile2 hinzufügen
am 08.09.2016 - 14:59 Uhr in
Hallo,
und zwar bin ich auf der Suche nach Hilfe für ein Zusatz-Modul im Zusammenhang mit Profile2.
Ich habe für eine bestimmte Benutzergruppe Profile2-Profile aktiv. Und mit meinem Modul will ich, dass wenn ich es aktiviere, in dem Profile2-Profil, 4 weitere Checkboxen erscheinen.
Aber aktuell bin ich gerade am verzweifeln, wie ich diese 4 Checkboxen in das Formular dynamisch rein bekomme. Ohne Backend zusammenklicken.
Modul an = 4 Checkboxen da
Modul aus = 4 Checkboxen wieder weg
Kann mir jemand helfen wie ich in einem eigenen Custom Modul die hinzufügen kann?
Und muss ich dafür extra ein Install-Script anlegen, welches die 4 Checkboxen speichert? Ode rmacht dass dan Profile2 intern? Weiß das jemand?
Danke
- Anmelden oder Registrieren um Kommentare zu schreiben
checkboxen haben ja einen Sinn
am 08.09.2016 - 15:29 Uhr
ansonsten braucht sie niemand
Also, wofür brauchst du di checkboxen?
Du legst einfach ein Feld vom Typ Boolean an, und stellst die Darstellung auf Checkbox.
Grüße
Ronald
Ja, haben Sie. Und ich will
am 08.09.2016 - 16:11 Uhr
Ja, haben Sie. Und ich will die im Weiteren auch auslesen und andere Funktionen davon abhängig machen.
Ich will aber nichts im Backend anlegen. Ich will das über PHP Code lösen. Ohne Backend. Mit PHP.
Die ganze Logik soll im Code des Moduls sein.
Um Verwirrungen zu vermeiden
am 08.09.2016 - 18:01 Uhr
Drupal hat kein Backend, sondern nur verschiedene Berechtigungen.
Wenn du dynamisch mal mehr und mal weniger Dinge mit Checkboxen einfügen möchtest, kannst du einen content_type für die Checkbox und ihren Wert machen, und diesen per entity_reference beliebig oft einfügen lassen.
Dafür brauchst du nicht einmal PHP-Code.
Willst du Umfrageaktionen machen lassen, dann gibt es dafür ein Modul, mit dem du genau das tun kannst, inkl. Auswertung.
https://www.youtube.com/watch?v=y3WDmDGi5KQ
Das Poll-Modul ist mittlerweile sogar für Drupal 8 verfügbar.
Grüße
Ronald
Twitnic schrieb Kann mir
am 09.09.2016 - 18:16 Uhr
Kann mir jemand helfen wie ich in einem eigenen Custom Modul die hinzufügen kann?
Und muss ich dafür extra ein Install-Script anlegen, welches die 4 Checkboxen speichert? Ode rmacht dass dan Profile2 intern? Weiß das jemand?
Da nimmst du den vielgeliebten hook_form_alter() oder besser noch hook_form_FORM_ID_alter() daher und fügst dem Form Array des Profile 2 Forms nach Belieben deine Felder hinzu. Beispiele, wie das geht, findest du zu Hauf auf drupal.org etc. Wird das custom module deaktiviert, sind auch die Felder wech...
Um die persistente Speicherung der boolschen Ausdrücke müsstest du dich in dem Fall jedoch selber kümmern. Du kannst in einer install.php mit einem Schema hook deine DB Tabelle anlegen, musst du aber nicht. Wenn du diesen Weg via hook_install(), hook_schema() und hook_unistall() gehst, musst du auf jeden Fall im hook_install() abfragen, ob die DB Tabelle / Spalten existiert. Weil sonst knallts im Falle einer neu Installation deines Moduls.
Wesentlich einfacher wäre es, die Felder im P2 anzulegen, ein kleines boolsches AN/AUS admin- form zu schreiben und abhängig vom aktuell ausgewählten Wert die Felder in dem bereits erwähnten form_alter() hook dynamisch zu enablen oder zu disablen.