Ergebnis 1 bis 6 von 6

Thema: User_ID als verstecktes Feld im Formular

  1. #1
    Contao-Nutzer
    Registriert seit
    17.07.2011.
    Beiträge
    27

    Standard User_ID als verstecktes Feld im Formular

    Hallo,
    ich weiss nicht genau, ob ich hier richtig bin, aber ich versuchs mal.
    Ich möchte mit dem Formulargenerator ein ein Formular basteln, dessen Daten ich direkt in eine Tabelle schreiben will.
    Der User, der das Formular zu sehen bekommt ist bereits im Frontend angemeldet.
    Er soll dann die Möglichkeit haben sich für die Teilnahme an einem Tippspiel zu registrieren.
    Hierfür möchte ich die Verknüpfung von TurnierID und User ID (Also Member) wegschreiben, um dann später seine Daten abrufen zu können.

    Und ein 2. Punkt wäre, wie ich dem User, wenn ersich für das Turnier registriert auch in eine weitere Frontend User Gruppe sschieben kann.
    Vieleicht kann ir jemand helfen?
    Thnx

  2. #2
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    die ID bekommst du in das Feld, wenn du das InsertTag {{user::id}} als Value reinschreibst.

    Die zusätzliche Benutzergruppe zuweisen kannst du mittels des Hooks processFormData erledigen, siehe die Beschreibung der Hook.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  3. #3
    Contao-Nutzer
    Registriert seit
    17.07.2011.
    Beiträge
    27

    Standard

    Oha!
    Da mit der UserID ist offensichtlich einfach ;-)
    Das mit dem Hook sieht etwas komplizierter aus...
    Kann ich das
    PHP-Code:
    $GLOBALS['TL_HOOKS']['processFormData'][] = array('MyClass''myProcessFormData'); 
    aus jeder beliebigen php-Datei aufrufen?
    Brauche ich zwingend ein MyClass.php, oder kann ich das alles in einer Datei abfackeln?
    Wie muss ich dann das array aufbauen? Fällt die Angabe von "MyClass" dann weg?

    Brauche etwas Licht im Dunkeln...
    thnx again

  4. #4
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    du brauchst eine Klasse, die diese Funktion zur Verfügung stellt. In dem Fall MyClass - du kannst sie aber auch beliebig anders nennen. Wenn es also schon eine projekt-/kundenspezifische Anpassung gibt, kannst du es da mit einbauen. Wie gut sind denn deine PHP-Kenntnisse?

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  5. #5
    Contao-Nutzer
    Registriert seit
    17.07.2011.
    Beiträge
    27

    Standard

    Hi,
    also meine PHP-Kenntnisse sind überschaubar...hab mich immer nur soweit reingewühlt, wie es eben nötig war;-) und eher weniger objektorientiert.
    Aber bis jetzt hab ich noch alles, was ich mir vorgenommen hatte auch umgesetzt bekommen (wenn dann auch aus Programierersicht sicher etwas ungewöhnlich).
    OKay, ich gebe zu dass ich mir nicht die Mühe machen wollte den gesamten Array-Aufbau und die einzelnen Classen im Debugger durchzugehen, um zu sehen was genau da passiert....Schande über mich, aber bis Dato war das für meine Bedürfnisse auch nicht nötig (ich weiss das ich jetzt irgendwann nicht mehr drum herum komme)

    Das mit der USerid hat mir aber schon sehr weitergeholfen. Mein Plan dabei ist folgender:
    Ich schreibe die UserID in eine Tabelle die die TurnierID mit dem User verbindet.
    Wenn der USer in der Tabelle nicht aufgeführt ist bekommt er das Formular zu sehen , um am Turnier teilnehmen zu können. Wenn doch liste ich die Turnierdaten in Form eines Formulars, welches die Tips aufnehmen kann.
    Per AJAX schreibe ich dann seine TIPs wiederum in eine weitere Tabelle. Das bekomme ich soweit auch hin auch wenn es im wesentlichen am Cotao Konstrukt vorbei geht). Nur hätte ich gerne die Gruppe gesetzt, damit ich den Check nicht jedesmal selber machen muss...
    Na, ich werde mal schauen, ob das nicht auch ohne Gruppe geht ;-)
    Vielen Dank für die HIlfe
    osswood

  6. #6
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    wenn du PHP soweit beherrschst, sollte das kein großes Problem mit dem Hook darstellen.

    Bau dir einfach eine eigene Erweiterung system/modules/foobar mit den beiden Dateien:

    system/modules/foobar/config/config.php
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    // register custom regex
    $GLOBALS['TL_HOOKS']['processFormData'][] = array('foobar''myProcessFormData');
    system/modules/foobar/foobar.php
    PHP-Code:
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    class 
    foobar extends Frontend
    {
      public function 
    myProcessFormData($arrPost$arrForm$arrFiles)
      {
        
    // dein Code
      
    }
    }
    Dann kannst du innerhalb von myProcessFormData mal einen Debug machen, was du da alles an Daten bekommst und dir das raussuchen, was du brauchst um die Gruppenzuweisung in der DB vorzunehmen.

    Eigentlich ganz einfach. ;-)

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

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
  •