Wenn ein schon registrierter Nutzer ein Formular ausfüllt, will ich die Daten, die ich schon habe, wie z.B. seine Namen und Adresse usw., nicht nocheinmal sammeln. Jedoch möchte ich, diese Daten bei einem neuen Benutzer immer noch sammeln. Gibt es dafür eine Lösung?
Das folgende Beispiel geht davon aus, dass Sie zwei unterschiedliche Sektionen in Ihrem Formular haben. Die erste Sektion, rot eingerahmt und im Bild unten als "Sektion 1" gekennzeichnet, würde nur den Benutzern die noch nicht eingeloggt sind angezeigt, eingeloggten Benutztern hingegen aber nicht. Die zweite Sektion darunter, würde allen Benutzern, unabhängig von Ihrem Status angezeigt werden.
Um bei unserem Beispiel zu bleiben, werden wir als nächstes in dem Feld "Name", unterhalb vom "Titel"-Feld den Namen jeder Sektion wie folgt umbenennen:
Sektion 1 Name: sektion1
Sektion 2 name: sektion2
Der nachfolgende Code geht davon aus , dass Sie die zwei Sektionen wie oben beschrieben umbenannt haben!!
Gehen Sie nun zu den Eigenschaften Ihres Formulars: Eigenschaften > Erweitert > Mehr Optionen, klicken Sie hier auf Skripte.
Im "Initialisierungsskript" Unterpunkt, klicken Sie nun als Typ auf "Spezial". Anschließend klicken Sie noch auf den Satz "Rahmencode erzeugen" unmittelbar nach dem klicken wird sich ein kleines "alert" pop-up öffnen. Klicken Sie einfach auf OK
In dem sich nun geöffneten Textfeld, sollten Sie jetzt Code sehen, der ungefähr so aussehen sollte wie der hier:
function ff_FORMNAME_init() { } // ff_FORMNAME_init
Zwischen die geschweiften Klammern müssen Sie nun noch folgenden Code einfügen:
<?php if( JFactory::getUser()->get('id',0) > 0 ) { echo " function mytoggler() { bfToggleFields('off', 'section', 'section1', bfDeactivateField); bfToggleFields('on', 'section', 'section2', bfDeactivateField); }"; } else { echo " function mytoggler() { bfToggleFields('on', 'section', 'section1', bfDeactivateField); bfToggleFields('on', 'section', 'section2', bfDeactivateField); }"; } ?>
Der Code sollte dann genau so aussehen:
function ff_FORMNAME_init() { <?php if( JFactory::getUser()->get('id',0) > 0 ) { echo " function mytoggler() { bfToggleFields('off', 'section', 'section1', bfDeactivateField); bfToggleFields('on', 'section', 'section2', bfDeactivateField); }"; } else { echo " function mytoggler() { bfToggleFields('on', 'section', 'section1', bfDeactivateField); bfToggleFields('on', 'section', 'section2', bfDeactivateField); }"; } ?> } // ff_FORMNAME_init
Als nächstes klicken Sie links auf "Formularteile" im "Nach Formular" Unterpunkt müssen Sie, wie gehabt, als Typ "Spezial" auswählen und dann zu guter letzt folgenden Code in das nun geöffnete Textfeld einfügen.
return ' <script> JQuery(document).ready(function() { mytoggler(); }); </script> ';
Nachdem Sie das alles getan haben, müssen Sie nur noch abspeichern, dazu einfach unten rechts auf den blauen "Speichern" knopf klicken, und anschließend das Formular selbst durch das klicken auf den grünen Speichern Knopf oben links abspeichern. Fertig