Maximale Anzahl Übertragungen

Maximale Anzahl an Übertragungen limitieren

Hinweis: Diese Features sind Teil der Visforms Subscription und in der freien Visforms Version nicht enthalten.

Zusammenfassung:
  • Die Übertragung des Formulars einfach auf maximale Formular-Übertragungen limitieren.
  • Die Übertragung des Formulars weiterhin limitieren
    • Auf maximale Benutzer-Angaben wie Mengen.
    • Auf maximale Options-Auswahlen.
    • Auf Kombinationen aus Options-Auswahl und Mengen-Angaben.
    • Durch beliebige Berechnungen durch eigene SQL-Statements.
  • Das Formular-Verhalten im Falle einer Überschreitung passgenau konfigurieren.
  • Formular-Meldungen im Falle einer Überschreitung individuell festlegen.
  • Die Nutzung von Visforms Platzhalter für aktuelle Benutzer-Eingaben ist möglich.
  • Das Plugin Visforms - Übertragungsanzahl limitieren muss zuvor aktiviert werden.

Systemeinstellungen - Plugin im Plugin-Manager aktivieren

Hinweis: Bitte stellen Sie sicher, dass Sie Ihre Visforms Subscription installiert haben.

Sie müssen Sie das Plugin im Plugin-Manager aktivieren, bevor Sie seine Funktionen verwenden können.

Gehen Sie hierzu in der Administration Ihrer Joomla Installation auf den Menüeintrag “System” und dann auf den Eintrag “Plugins” auf der Kachel “Verwalten”.
Suchen Sie den Eintrag des Plugins mit dem Namen Visforms - Übertragungsanzahl limitieren.

Hinweis: Verwenden Sie hierzu etwa den Suchfilter über der Plugin-Liste.

Das Plugin ist aktiviert, wenn Sie in der Statusspalte einen grünen Haken sehen.
Es ist deaktiviert, wenn an dieser Stelle ein grauer Kreis mit weißem X steht.
Klicken Sie in diesem Fall ein mal auf den grauen Kreis, um das Plugin zu aktivieren.

Die maximale Anzahl konfigurieren

Hinweis: Alle Optionen zu den maximalen Übertragungen werden in der Formular-Konfiguration eingestellt.

Hinweis: Stellen Sie Anfangs die Inline-Hilfe an. Sie enthält auch für dieses Feature umfangreiche und weitgehend selbsterklärende Beschreibungen zu allen Einstellungen. In diesem Fall mit Bezug auf das untenstehende Beispiel aus dieser Dokumentation.

Das Plugin “Visforms - Übertragungsanzahl limitieren” wurde so entwickelt, dass Sie die Übertragungsanzahl-Optionen für jedes Formular getrennt konfigurieren können. Hierzu erzeugt das Plugin in der Formularkonfiguration einen neuen Reiter “Maximale Übertragung”.

Gehen Sie in der Administration Ihrer Webseite auf Komponenten » Visforms und öffnen Sie die Bearbeiten-Sicht für das Formular, für das Sie die maximale Anzahl von Übertragungen begrenzen wollen. Klicken Sie dort auf den Reiter “Maximale Übertragung”.

Formularkonfiguration

Das Formular-Verhalten festlegen

Legen Sie im oberen Bereich der Konfiguration das gewünschte Formular-Verhalten fest für den Fall, dass die maximale Anzahl an Übertragungen erreicht wird.
Die Optionen zur Anpassung des Formular-Verhaltens bei Erreichen der maximalen Anzahl sind weitestgehend selbsterklärend.

Auswahl “Formularansicht anpassen”

Die möglichen Optionen zur Anpassung der Formularansicht bei Erreichen der maximalen Anzahl sind weitestgehend selbsterklärend:

  • Formular nicht verändern.
  • Absenden-Button entfernen.
  • Formular nicht anzeigen.

Auswahl “Weiterleitung”

Die beiden Optionen zur Weiterleitung nach Absenden des Formulars und Erreichen der maximalen Anzahl sind weitestgehend selbsterklärend:

  • Auf Start-Seite zurückkehren.
  • Formular-Einstellungen folgen.

Anzeige-Texte

Meldung im Formular

Es kann eine Standard-Meldung angezeigt werden für den Fall, dass die verfügbare Anzahl an Übertragungen geringer sein sollte als die neu hinzukommende Anzahl. Für das Erscheinen der Standard-Meldung an den Benutzer ist die folgende Einstellung zu wählen:

  • Parameter Meldung im Formular anzeigen = ‘Ja’.

Die Standard-Meldung lautet wie folgt:
‘Leider wurde die maximale Anzahl möglicher Übertragungen für dieses Formular erreicht. Sie können das Formular deshalb nicht abschicken.’

Es kann auch eine individuelle Meldung angezeigt werden für den Fall, dass die verfügbare Anzahl an Übertragungen geringer sein sollte als die neu hinzukommende Anzahl. Für das Erscheinen einer individuellen Meldung an den Benutzer sind die beiden folgenden Einstellungen zu wählen:

  • Parameter Meldung im Formular anzeigen = ‘Ja’.
  • Parameter Individuelle Meldung = ‘Meine individuelle Meldung schreibe ich hier. Es sind nur noch %d Anmeldungen frei’.

Wie viele andere Eingabe-Felder trägt auch das Eingabe-Feld Individuelle Meldung in seiner rechten oberen Ecke das Kennzeichen-Zeichen ‘${.}'. Das Kennzeichen-Zeichen ‘${.}’ bedeutet, dass in diesem Eingabe-Feld Visforms Platzhalter verwendet werden können. Damit kann der individuelle Meldungstext weiter angepasst werden, etwa mit aktuellen Benutzer-Informationen.

Text-Beispiele mit Visforms Platzhalter

  • Individuelle Meldung (Details siehe Kino-Beispiel unten):
    ‘Der gewählte Film ‘${movie}’ hat nur noch %d reservierbare Plätze frei.’
  • Exemplarische Nutzung von Benutzer-Informationen im Meldungstext durch Verwendung des Framework-Objektes user:
    • ‘user id = ${user:id}, name = ${user:name}, username = ${user:username}, email = ${user:email}, registerDate = ${user:registerDate}, lastvisitDate = ${user:lastvisitDate}, groups = ${user:groups}.’
    • ‘Hallo ${user:name}, der gewählte Film ‘${movie}’ hat nur noch %d reservierbare Plätze frei.’

Hinweis: Der Teil mit %d wird gegen die aktuelle Anzahl der noch freien Übertragungen ersetzt.

Verbleibende Übertragungen

Das Formular kann früh vor dem Absenden die Anzahl der verbleibenden Übertragungen anzeigen.
Für das Erscheinen der Anzahl der verbleibenden Übertragungen im Formular ist die folgende Einstellung zu wählen:

  • Parameter Anzeigen = ‘Ja’.

Die Standard-Meldung lautet wie folgt:
‘Verbleibende Übertragungen: %d.’

Es kann im Formular eine individuelle Meldung für die Anzahl der verbleibenden Übertragungen angezeigt werden.
Für das Erscheinen einer individuellen Meldung sind die beiden folgenden Einstellungen zu wählen:

  • Parameter Anzeigen = ‘Ja’.
  • Parameter Individueller Text = ‘Mein individueller Text für die Anzahl an verbleibenden Übertragungen: %d’.

Hinweis: Der Teil mit %d wird gegen die aktuelle Anzahl der noch freien Übertragungen ersetzt.

Für den folgenden Fall ist es technischen Gründen nicht möglich, eine frühe Meldung vor dam abschicken des Formulars über die Anzahl der verbleibenden Übertragungen anzuzeigen:

  • Parameter Methode = ‘Frei Berechnung’.
  • Parameter Anzahl aus Liste = ‘Ja’
Formularkonfiguration

Aktuelle Anzahl und maximale Anzahl

Legen Sie im unteren Bereich der Konfiguration die Art der Bestimmung fest für:

  • die aktuelle Anzahl,
  • die maximale Anzahl.

Es stehen für die Art der Bestimmung der Anzahlen unterschiedliche Methoden und Optionen zur Verfügung:

  • Methode Formular-Übertragungen:
    Diese Methode ist der einfachste Fall zur Bestimmung der Anzahlen.
    • Es die aktuelle Anzahl: Sie ergibt sich direkt aus der Anzahl an erfolgten Formular-Übertragungen.
    • Die maximale Anzahl: Wird als feste Zahl direkt in der Konfiguration eingetragen.
  • Methode Freie Berechnung:
    Diese Methode bietet in zwei Schritten mehr Möglichkeiten durch hohe Flexibilität bei der Bestimmung der Anzahlen.
    • Option Anzahl aus Liste = “Nein”
      In einem ersten Schritt ermöglicht diese Methode jeweils eine freie individuelle Berechnung der maximalen Anzahlen sowie der aktuellen Anzahl.
      Das ist etwa interessant, falls nicht einfach alle bisherigen Übertragungen direkt in die Berechnung der aktuellen Anzahl einfließen sollen.
      Hiermit kann etwa erreicht werden, dass einzelne Formular-Optionen unterschiedliche in die Bestimmung der aktuellen Anzahl einfließen.
    • Option Anzahl aus Liste = “Ja”
      In einem zweiten Schritt ermöglicht diese Methode beliebig viele verschiedene maximale Anzahlen in Form einer Lookup-Liste.
      Hiermit kann zusätzlich etwa erreicht werden, dass es für einzelne Formular-Optionen unterschiedliche maximale Anzahlen gibt.

Die Methode auswählen

Formularkonfiguration

Methode “Formular-Übertragungen”

Formularkonfiguration

Methode “Freie Berechnung”

Aktuelle Anzahl und maximale Anzahl hängen von den bisher erfolgten Übertragungen und daher von den gespeicherten Formular-Daten ab.
Die beschriebenen Möglichkeiten der freien Berechnung müssen daher auf die gespeicherten Formular-Daten zugreifen.
Für eine maximale Flexibilität bei der freien Berechnung der Anzahlen ist daher ein individuelles SQL-Statement mit direkter Zugriffsmöglichkeit auf alle gespeicherten Formular-Daten die geeignetste Formel-Sprache.

Maximale Anzahl ist fest

Dies ist der Fall für folgende Einstellung: Option Anzahl aus Liste = “Nein”. Formularkonfiguration

Maximale Anzahlen aus einer Liste

Dies ist der Fall für folgende Einstellung: Option Anzahl aus Liste = “Ja”. Formularkonfiguration

Beispiel: Film-Tickets eines Kinos

In diesem konkreten Beispiel werden Kartenreservierungen in einem kommunalen Kino spezifisch für jede einzelne Film-Vorstellung begrenzt, um der Saal-Größe gerecht zu werden.

Das Feature wurde sehr nahe an diesem Anwendungsfall entwickelt. Daher sind die Hinweistexte der Online-Hilfe der Konfiguration, die bei den jeweiligen Optionen stehen, sehr nah an dem, was für dieses Beispiel eingetragen werden muss. In vielen Fällen können die SQL-Statements vermutlich mehr oder weniger direkt verwenden werden.

In diesen Fällen sind dann nur folgende Formular-spezifische Details anzupassen:

  • Feld-Namen,
  • Parameter-Namen,
  • Grenzwerte.

Plugin

  • In der Joomla Administration das Plugin Visforms - Übertragungsanzahl limitieren aktivieren.

Formular

  • Die Formular-ID im Beispiel ist 68.
  • In einem Feld vom Typ Listbox können Film-Vorstellungen ausgewählt werden (Film, Tag, Uhrzeit).
    Der Feld-Name im Beispiel ist movie.
    Die Feld-ID im Beispiel ist 733.
  • In einem Feld vom Typ Zahl wird angegeben, wie viele Karten reserviert werden sollen.
    Der Feld-Name im Beispiel ist count.
    Die Feld-ID im Beispiel ist 734.

Anforderung

  • Das Kino ist klein und die Anzahl der reservierten Karten ist auf maximal 50 Karten begrenzt.

Konfiguration

In der Formular-Konfiguration » Reiter Maximale Übertragung folgende Einstellungen vornehmen:

  • Option Methode = ‘Freie Berechnung’
  • Unter-Reiter Freie Berechnung » Option Anzahl aus Liste = ‘Ja’

Berechnungen

Hinweis: Selbst kleinste Abweichungen in der Syntax führen leider zu Fehlern.

Anschließend folgende Optionen passend zum Anwendungsfall füllen:

  • Option SQL-Statement zur Berechnung Index in die Liste
    select'${movie|DISPLAYOPTIONVALUE}';
    

    Der Platzhalter ist in einfache Hochkomma eingeschlossen, da es sich um einen String-Literal im SQL-Statement handelt.

  • Option Liste maximaler Anzahlen
    {"movie-1":"50","movie-2":"50", ...... ,"Film":"Anzahl"}
    

    Name und Wert sind jeweils mit doppeltem Hochkomma umschlossen.
    Name und Wert sind gegeneinander mit Doppelpunkt getrennt.
    Name-Wert Pärchen sind mit Komma getrennt.
    Es sind keine zusätzlichen Leerzeichen erlaubt.

  • Option SQL-Statement zur Berechnung aktuelle Anzahl
    select sum(F734) from #__visforms_68 where F733 = '${movie|DISPLAYOPTIONVALUE}' and published = 1;
    

    Der Platzhalter ist in einfache Hochkomma eingeschlossen, da es sich um einen String-Literal im SQL-Statement handelt.

  • Option SQL-Statement zur Berechnung hinzukommende Anzahl
    select '${count}';
    

    Der Platzhalter ist in einfache Hochkomma eingeschlossen, da es sich um einen String-Literal im SQL-Statement handelt.

Formular-spezifische Details:

  • ${movie}: Der Name des Platzhalters der Listbox zur Auswahl derFilm-Vorstellung.
    Dieser Platzhalter-Name ergibt sich wie folgt (Feld-Name eingeschlossen in ${}):
    ${Feld-Name}.
  • movie-1, movie-2, movie-3: Die Options-Werte, die in der Listbox zur Auswahl der Film-Vorstellung gewählt werden können.
  • {“movie-1”:“11”}: Bedeutet für den Film movie-1 können insgesamt 11 Karten vorbestellt werden.
  • ${count} ist der Name des Platzhalters des Feldes mit der gewünschten Kartenanzahl.
    Dieser Platzhalter-Name ergibt sich wie folgt (Feld-Name eingeschlossen in ${}):
    ${Feld-Name}.
  • #__visforms_68 ist der Datenbank-Tabellenname des Formulars.
    Dieser Name ergibt sich durch Anhängen der Formular-ID an #__visforms_:
    #__visforms_FormularID.
    Das Präfix #__ wird durch Joomla mit dem konfigurierten Joomla-Tabellen-Präfix der Joomla-Instanz automatisch ersetzt.
    Am Anfang stehen 2 _ Zeichen also #_ _
  • F734 ist der Datenbank-Feldname des Feldes mit der gewünschten Kartenanzahl.
    Dieser Name ergibt sich durch Anfügen der Feld-Id an den Großbuchstaben F.
  • F733: Der Datenbank-Feldname der Listbox zur Auswahl der Film-Vorstellung.
    Dieser Name ergibt sich durch Anfügen der Feld-Id an den Großbuchstaben F.

Texte

Individuelle Meldung

Die individuelle Meldung kann mit Visforms Platzhalter sowie dem Platzhalter %d für die Anzahl an verbliebenen Übertragungen gestaltet werden:

  • Individuelle Meldung:
    ‘Der gewählte Film ‘${movie}’ hat nur noch %d reservierbare Plätze frei.’
  • Exemplarische Nutzung von Benutzer-Informationen im Meldungstext durch Verwendung des Framework-Objektes user:
    • ‘user id = ${user:id}, name = ${user:name}, username = ${user:username}, email = ${user:email}, registerDate = ${user:registerDate}, lastvisitDate = ${user:lastvisitDate}, groups = ${user:groups}.’
    • ‘Hallo ${user:name}, der gewählte Film ‘${movie}’ hat nur noch %d reservierbare Plätze frei.’

Hinweis: Der Teil mit %d wird gegen die aktuelle Anzahl der noch freien Übertragungen ersetzt.

Verbleibende Übertragungen

Für diesen Fall ist es aus technischen Gründen nicht möglich, eine frühe Meldung vor dam Absenden des Formulars über die Anzahl der verbleibenden Übertragungen anzuzeigen.
Die Anzahl der verbleibenden Übertragungen kann erst nach Auswahl einer Film-Vorführung und dem Empfang des abgesendeten Formulars im Backen ermittelt werden.
Allein die Individuelle Meldung im Falle einer Überschreitung der maximalen Anzahl ist in diesem Fall möglich.