Ergebnis 1 bis 2 von 2

Thema: [Gelöst] Shop event-Feld prüfen vor Weiterverarbeitung

  1. #1
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    273

    Standard [Gelöst] Shop event-Feld prüfen vor Weiterverarbeitung

    Hallo,

    ich stehe ein wenig auf dem Schlauch: Ich betreibe für einen Kulturverein einen kleinen Ticketshop (Überweisung und PayPal). Ich habe das event-Template so angepasst, dass die notwendigen Daten per urlencode an das Formular "Warenkorb" übertragen werden. Der Link
    PHP-Code:
    <a href="warenkorb.html?day=<?php echo $eventdat?>&event=<?php echo urlencode(str_replace('&quot;',''$this->title));// entfernen des " wenn ueber Tastatur eingegen wurde (shift + 2)?>&eventdatum=<?php echo urlencode($this->date);?>&eventbeginn=<?php echo urlencode(date("H:i"$this->startTime));?>&eventpreis=<?php echo urlencode($this->kgs_vorverkauf)?>&eventort=<?php echo urlencode($this->location)?>&eventbild=<?php echo urlencode($this->src)?>&eventid=<?php echo urlencode($this->id)?>&eventpreis=<?php echo urlencode($this->kgs_vorverkauf)?>">Karten online kaufen</a>
    Zusätzlich habe ich in der DB bei tl_calendar_events ein zusätzliches Feld "sperre" eingerichtet, dass mit einer "1" belegt wird, wenn die Veranstaltung ausverkauft ist. Diese Feld wird im event-Template abgefragt und bei "1" wird der Link für den Warenkorb erst gar nicht generiert.

    Jetzt kommt das Problem bzw. die "Sicherheitslücke": Wenn ich den Verkauf stoppe, dann kann man danach, wenn man sich den ursprünglichen Link gespeichert hat oder er in der Vervollständigung des Browsers noch vefügbar ist, trotzdem noch auf den Warenkorb zugreifen und Karten kaufen (so vor kurzem erstmals geschehen).

    Was hier fehlt, ist eine aktuelle DB Abfrage über die ID des events, ob das Feld "sperre" auf "1" steht.

    Erreichen will ich, dass, wenn das event ausverkauft ist, auf eine Hinweisseite automatisch umgeleitet wird, und das Formular auf der Seite warenkorb.html nicht mehr ausgeführt wird.
    Ich habe im Forum schon gesucht, aber nichts passendes gefunden. Ich habe mit dem Modul "Auflistung" experimentiert, dass auch reagiert, aber im zugehörigen Template finde ich keine Möglichkeit, durch eine if-Abfrage auf eine andere Seite zu verlinken oder den Vorgang abzubrechen.
    modul.jpg

    Vielleicht gibt es ja eine einfache Lösung, dann wäre ich für einen Hinweis dankbar. Denkbar wäre auch ein Kleinstauftrag.

    Gruß Georgi
    Geändert von Georgi (07.02.2018 um 06:56 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    273

    Standard

    Mein Lösung sind jetzt so aus:

    im Template (list_default) habe ich unten innerhalb if - else vor dem else folgenden code hinzugefügt:

    PHP-Code:
    <!-- Hier wird der Rücklink mit Anker auf das event generiert. -->
        <?php $page "https://myhomepage.de/veranstaltungen.html";
              
    $page .= '#' $col['id'];
              
    header('Location: ' $page '');
              exit; 
    ?>
    <!-- Ende -->
    Dieser Code genieriert einen Link auf die Veranstaltungsseite mit einem Anker (id des event), sodass der Benutzer sofort bei der veranstaltung landet und sehen kann, dass die z.B. ausverkauft ist. Die Bedingungen defieniere ich im obigen Modul, dass auf der Seite warenkorb.html eingebunden ist.
    Mit der css-Anweisung #warenkorb .all_records {display:none;} blende ich die Liste aus dem Template list_default aus. Das arebitet zuverlässig.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •