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 

Angebot

Sommer Special! Alle Mitgliedschaften zum Sonderpreis!

Prio Support, alle Extensions und alle Templates in einem Paket.

Hier geht's zur Bestellung

Crosstec hilft sparen!

Falls Sie neu bei Crosstec sind aber bereits einen Formulargenerator bei einem anderen Hersteller gekauft haben, dann bekommen sie von uns einen Rabatt von 25% auf unsere 1-Jahres und Pro-Mitgliedschaften

Wie Sie an den Rabatt kommen?

Schreiben Sie uns einfach eine kurze Email mit beigelegten Kaufbeleg (z.B. PayPal Quittung) an sales@crosstec.org.

Wir unterstützen die Joomla Community

Crosstec unterstützt weltweit alle offiziellen Joomla! User Groups und Organisatoren von Joomla! Days die bei Joomla.org registriert sind.

Falls das auf dich zutrifft und du eines unserer Produkte brauchst, schreib uns eine kurze Email an info@crosstec.org und du bekommst eine Flatrate-Mitgliedschaft geschenkt!