Ergebnis 1 bis 35 von 35

Thema: Datum im Formular eingeben, als timestamp speichern

  1. #1
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard Datum im Formular eingeben, als timestamp speichern

    Wie kann man denn ein Datum in einem Formular eingeben (z.B. 28.3.2022) und dieses als timestamp in der Datenbank speichern lassen?
    Ich habe ein kleine Erweiterung in der ein Datum mittels rgxp => date zu einem Timestamp umgewandlet wird.

    Code:
    'eventdate'    => array
            (
                'label'         => &$GLOBALS['TL_LANG']['tl_eventkalender']['eventdate'],
                'inputType' => 'text',
                'exclude'     => true,
                'sql'            => "varchar(11) NOT NULL DEFAULT ''",
                'filter'         => true,
                'eval' => array('rgxp'=>'date', 'datepicker'=>true, 'feEditable'=>true, 'feViewable'=>true),
                'flag'            => 6,
            ),
    Trage ich aber die Date mittels Contao Formular in die Datenbank ein, wird ein Datum gespeichert.

    Lässt sich das realisieren? Danke vielmals!

  2. #2
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du meinst mittels einem Frontend Formular?

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Flaschenzug Beitrag anzeigen
    Trage ich aber die Date mittels Contao Formular in die Datenbank ein, wird ein Datum gespeichert.

    Lässt sich das realisieren?
    z. B.
    damit https://docs.contao.org/dev/referenc...ocessFormData/
    oder damit https://docs.contao.org/dev/referenc...storeFormData/

    je nachdem, wie Du die Speicherung realisierst

  4. #4
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Du meinst mittels einem Frontend Formular?
    Genau, mittels Contao Frontend Formular.

  5. #5
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dann programmatisch wie @zonky verlinkt oder via https://extensions.contao.org/?q=hof...rfield&pages=1

  6. #6
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Okay, super. Danke schon mal euch zweien.

    Könnte einfach das Plugin nehmen, aber würde lieber die Technik hinter den Hooks verstehen.

    Bei den Hooks bzw. in dem Fall dem Eventlistener ist mir eins noch nicht ganz klar:
    Wo kann ich diese Hooks ablegen, so das Contao diese registriert?
    Brauche ich dafür ein eigenes Modul?

    Das geht für mich aus der Anleitung hier https://docs.contao.org/dev/reference/hooks/ nicht so richtig für mich hervor.

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Dann programmatisch wie @zonky verlinkt oder via https://extensions.contao.org/?q=hof...rfield&pages=1
    hmm... habe die Erweiterung nochmal überflogen: sehe ad hoc keine Umwandlung zu Timestamp... Primär ist die Erweiterung m. E. für den Picker im FE und ggf. für Validierungen der Datumseingrenzungen wie "heute und Zukunft"... oder?!?

  8. #8
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, aber der speichert nen timestamp ... alles andere ist ja Blödsinn ;-)

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Ja, aber der speichert nen timestamp ... alles andere ist ja Blödsinn ;-)
    per se speichern Contao-Formulare gar nix - hautpsächlich werden die Daten per E-Mail weiter gereicht und da wäre ein Timestamp eher nicht so angesagt...

    Ob die Erweiterung für eine Speicherung die Umwandlung schon vorbereitet, kann ich nicht sagen.

  10. #10
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Weiterreichen als Timstamp meinte ich. Das macht sie. Wenn du das in die Mail haust und mit nem Inserttag formatierst, ist doch alles fein.

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Das Weiterreichen als Timstamp meinte ich. Das macht sie. Wenn du das in die Mail haust und mit nem Inserttag formatierst, ist doch alles fein.
    das wäre mehr als ungewöhnlich, das so zu machen - wenn Du die Core-Funktionalität der E-Mail-Versendung verwendest, kommst Du gar nicht an die Sachen ran und kannst da auch nicht mit einem Inserttag arbeiten! Beim NC mag das gehen - würde mich dennoch wundern...

  12. #12
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Dann muss ich sowieso auf den Hook zurückgreifen.

    Zitat Zitat von Flaschenzug Beitrag anzeigen
    Bei den Hooks bzw. in dem Fall dem Eventlistener ist mir eins noch nicht ganz klar:
    Wo kann ich diese Hooks ablegen, so das Contao diese registriert?
    Brauche ich dafür ein eigenes Modul?

    Das geht für mich aus der Anleitung hier https://docs.contao.org/dev/reference/hooks/ nicht so richtig für mich hervor.
    Freue mich über Tipps hierzu. Danke :-)

  13. #13
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.452
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Na gut, ich weiß, dass die Erweiterung das ausgewählte Datum als Timestamp weiterreicht. Mit Contao Standard Formular hab ich das nie getestet.

  14. #14
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Und wo kann ich die Hooks einsetzen?
    Im Modul? In einer Config Datei von Contao?
    Danke

  15. #15
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    dann komm mal zum Stammtisch - dort können wir Dir das zeigen ;-)

    oder beim Camp22

  16. #16
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.504
    Partner-ID
    6122

    Standard

    Eventuell hilft zwecks Einstieg der Beitrag:
    https://docs.contao.org/manual/de/an...ten-speichern/
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cliffparnitzky Beitrag anzeigen
    Na gut, ich weiß, dass die Erweiterung das ausgewählte Datum als Timestamp weiterreicht. Mit Contao Standard Formular hab ich das nie getestet.
    Man kann das so konfigurieren - siehe https://flatpickr.js.org/examples/ "Human-friendly Dates" - dass "intern" ein anderes Format verwendet wird als das was angezeigt wird.

    Beim Blick in den Quelltext sieht man, dass dafür ein hidden field verwendet wird.

    Ergo: das Datumsfeld ist per se ein "dummes Textfeld" und das was da eingetragen wird, geht als POST an den Server - dort kann das in eine E-Mail übernommen und/oder in DB/CSV gespeichert werden.

    ... und natürlich per Hook vorher nochmal transferriert

  18. #18
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Zitat Zitat von Franko Beitrag anzeigen
    Eventuell hilft zwecks Einstieg der Beitrag:
    https://docs.contao.org/manual/de/an...ten-speichern/
    Ich habe mal versucht mich daran zu orientieren:

    Code:
    <?php
    
    // src/EventListener/PrepareFormDataListener-Events.php
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\Form;
    use Doctrine\DBAL\Connection;
    
    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        // Change these variables for your form
        private const FORM_ID = 8;
    
        private $db;
    
        public function __construct(Connection $db)
        {
            $this->db = $db; // wird eigentlich nicht gebraucht, hab es aber vorerst drin gelassen?
        }
    
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            // Check if this is the right form
            if (self::FORM_ID !== (int) $form->id) {
                return;
            }
    
            $submittedData['eventdate'] = '123'; // einfach mal schauen ob irgend ein Wert ankommt
        }
    }
    Allerdings passiert - wer hätte es anders erwartet - erstmal nichts.
    Muss ich das Script noch irgend wie bei Contao registrieren?
    Habe den "Anwendungs-Cache" geleert.

    Danke

  19. #19
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    in dem Beispiel steht

    PHP-Code:
    // src/EventListener/PrepareFormDataListener.php 
    dann benenne die Datei bitte auch so - ein composer install auf Konsole hatst du sicher durchgeführt...

  20. #20
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Ich dachte ich bin clever und sorge dafür, das ich später die Hooks noch auseinander halten kann.
    Habe die Datei jetzt zurück in den ursprünglichen Namen benannt.

    ein composer install auf Konsole hatst du sicher durchgeführt...
    Gerade dabei ... und auf einmal wird 123 eingesetzt. Danke!!!

    Für mein Verständnis: Warum muss ich da ein composer install ausführen?
    Geändert von Flaschenzug (01.04.2022 um 08:07 Uhr)

  21. #21
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Flaschenzug Beitrag anzeigen
    Für mein Verständnis: Warum muss ich da ein composer install ausführen?
    vereinfacht gesagt, werden die Klassen in einer Datei angemeldet damit ein schnellerer Zugriff darauf möglich ist - das muss aber auch initiiert werden z. B. mit einem composer install...

  22. #22
    Contao-Fan Avatar von Flaschenzug
    Registriert seit
    08.07.2010.
    Ort
    Berlin
    Beiträge
    312

    Standard

    Großartig, Danke euch allen. Das hat mir sehr geholfen!

    Eine Frage zur "best practice" habe ich noch.
    Angenommen ich habe ein zweites Formular bei dem ich Daten verändern will.

    Wäre Folgendes der gängige Ansatz? Oder gibt es da einen sinnvolleren Weg?
    Code:
    <?php
    
    // src/EventListener/PrepareFormDataListener.php
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\Form;
    use Doctrine\DBAL\Connection;
    
    /**
     * @Hook("prepareFormData")
     */
    class PrepareFormDataListener
    {
        
        private $db;
    
        public function __construct(Connection $db)
        {
            $this->db = $db; // wird eigentlich nicht gebraucht, hab es aber vorerst drin gelassen?
        }
    
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            // Check if this is the right form
            if ((int) $form->id === IDXXX) {
                  $submittedData['eventdate'] = '123'; // einfach mal schauen ob irgend ein Wert ankommt
            }
            elseif ((int) $form->id === IDYYY) {
                  $submittedData['eventdate'] = '123'; // einfach mal schauen ob irgend ein Wert ankommt
            }
            // usw ... ?
    
        }
    }
    Danke und ein schönes Wochenende
    Geändert von Flaschenzug (02.04.2022 um 19:24 Uhr)

  23. #23
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    im Prinzip ja, wobei einzelne "if´s" reichen und du das elseif weglassen kannst

  24. #24
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Hat sich hier im Bezug auf Contao 4.13.43 etwas geändert?

    Ich versuche auch gerade über ein Frontend-Formular Eventeinträge zu generieren.
    Das funktioniert auch soweit, nur der Alias wird scheinbar nicht als solcher erkannt und somit der Eventeintrag nicht veröffentlicht. Erst wenn ich diesen im Backend aufrufe und nochmals speichere, wird er angezeigt (obwohl der Haken "Event veröffentlichen" gesetzt ist).

    Ich bin mir auch nicht sicher, ob der EventListener (https://docs.contao.org/manual/de/an...ten-speichern/) aus dem Beispiel in der Doku überhaupt ausgeführt wird.
    Dort steht: Erstelle in deiner Contao-Installation die Verzeichnisse src/EventListener/ und platziere darin die Datei PrepareFormDataListener.php
    Ist damit das Wurzelverzeichnis der Installation (z.B. httpdocs/contao413/) gemeint oder documentroot (httpdocs/contao413/public)?

    Ich habe beide Verzeichnisse getestet und den Anwendungscache geleert, aber die php-Datei scheint nach Absenden des Formulars nicht ausgeführt zu werden.
    Ich habe weiter versucht, den Alias über ein verstecktes Feld im Formular zu setzen. Der Wert landet zwar in der Datenbank, wird aber scheinbar nicht als Alias erkannt.

  25. #25
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.947

    Standard

    Zitat Zitat von wdm Beitrag anzeigen
    Ist damit das Wurzelverzeichnis der Installation (z.B. httpdocs/contao413/) gemeint oder documentroot (httpdocs/contao413/public)?
    Ersteres. Und: siehe #19.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  26. #26
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.254
    Partner-ID
    10107

    Standard

    Alle Pfad Angaben beziehen sich immer auf das Contao Installationsverzeichnis, sofern nicht anders angegeben.
    » sponsor me via GitHub or PayPal or Revolut

  27. #27
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Ich habe sowohl den Pfad als auch die Dateinamen 1 zu 1 aus der Doku übernommen. Das passt also.
    Ein composer install über die Kommandozeile kann ich nicht ausführen, da kein SSH-Zugriff. Das habe ich aber über den Contao Manager schon mehrfach getan. Ohne Ergebnis.

  28. #28
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.254
    Partner-ID
    10107

    Standard

    Zitat Zitat von wdm Beitrag anzeigen
    Das passt also.
    Das muss erst verifiziert werden
    » sponsor me via GitHub or PayPal or Revolut

  29. #29
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Was meinst Du mit "muss verifiziert werden"?
    Hier der Pfad aus dem FTP-Verzeichnis der Seite:
    Screenshot 2024-05-17 105758.png

    und hier der Inhalt der php-Datei
    Code:
    // src/EventListener/PrepareFormDataListener.php
    namespace App\EventListener;
    
    use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
    use Contao\CoreBundle\Slug\Slug;
    use Contao\Form;
    use Doctrine\DBAL\Connection;
    
    #[AsHook('prepareFormData')]
    class PrepareFormDataListener
    {
        // Change these variables for your form, calendar and author
        private const FORM_ID = 1;
        // private const CALENDAR_ID = 2;
        private const AUTHOR_ID = 1;
    
        private $slug;
        private $db;
    
        public function __construct(Slug $slug, Connection $db)
        {
            $this->slug = $slug;
            $this->db = $db;
        }
    
        public function __invoke(array &$submittedData, array $labels, array $fields, Form $form): void
        {
            // Check if this is the right form
            if (self::FORM_ID !== (int) $form->id) {
                return;
            }
    
            // Mandatory fields
            // $submittedData['pid'] = self::CALENDAR_ID;
            $submittedData['pid'] = $submittedData['pid'];
            $submittedData['author'] = self::AUTHOR_ID;
    
            // Set this to false, if newly created events should not be immediately published
            $submittedData['published'] = true;
    
            // Generate unique alias
            $submittedData['alias'] = $this->getSlug($submittedData['title']);
    
            // Convert and set date fields
            $submittedData['startDate'] = strtotime(trim($submittedData['startDate'])) ?: null;
    	 $submittedData['startTime'] = strtotime(trim($submittedData['startTime'])) ?: null;
            // $submittedData['startTime'] = $submittedData['startDate'];
    
            // Optional fields
            if (!empty(trim($submittedData['endDate']))) {
                $submittedData['endDate'] = strtotime(trim($submittedData['endDate'])) ?: null;
                $submittedData['endTime'] = strtotime(trim($submittedData['endTime'])) ?: null;
    	     // $submittedData['endTime'] = $submittedData['endDate'];
            } else {
                $submittedData['endDate'] = null;
                $submittedData['endTime'] = null;
            }
        }
    
        private function getSlug(string $text, string $locale = 'de', string $validChars = '0-9a-z'): string
        {
            $options = [
                'locale' => $locale,
                'validChars' => $validChars,
            ];
            
            $duplicateCheck = function (string $slug): bool {
                return $this->db->fetchOne('SELECT COUNT(*) FROM tl_calendar_events WHERE alias = ?', [$slug]) > 0;
            };
    
            return $this->slug->generate($text, $options, $duplicateCheck);
        }
    }

  30. #30
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.254
    Partner-ID
    10107

    Standard

    Zitat Zitat von wdm Beitrag anzeigen
    Was meinst Du mit "muss verifiziert werden"?
    Genau das, was du nun gemacht hast

    Und du hast auch sicher <?php am Anfang geschrieben?

    Nutzt du auch mindestens PHP 8.1?
    » sponsor me via GitHub or PayPal or Revolut

  31. #31
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Das <?php am Anfang hatte ich natürlich nicht drin stehen. War ja auch in der Vorlage nicht drin. Ist halt so, wenn mal selbst kein Programmieren ist.
    PHP ist die 8.1.19
    Nach dem Ergänzen des <?php Tags und Cache leeren bzw. composer install ausführen, wird der Hook aber trotzdem nicht ausgeführt.
    Der Alias bleibt leer und auch die Author-ID (2), die mittels verstecktem Feld im Formular übergeben wird, steht im Datenbankeintrag und nicht die 1 aus dem PHP-Script.

  32. #32
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.254
    Partner-ID
    10107

    Standard

    Zitat Zitat von wdm Beitrag anzeigen
    Das <?php am Anfang hatte ich natürlich nicht drin stehen. War ja auch in der Vorlage nicht drin.
    PHP Dateien fangen immer mit <?php an - deswegen wird das in allen Dokumentationen immer weggelassen.



    Zitat Zitat von wdm Beitrag anzeigen
    Ist halt so, wenn mal selbst kein Programmieren ist.
    Für Hooks programmierst du aber PHP - insofern wird natürlich ein gewisses Know-How benötigt.



    Zitat Zitat von wdm Beitrag anzeigen
    Nach dem Ergänzen des <?php Tags und Cache leeren bzw. composer install ausführen, wird der Hook aber trotzdem nicht ausgeführt.
    Poste die Ausgabe von
    Code:
    vendor/bin/contao-console debug:container "App\EventListener\PrepareFormDataListener"
    » sponsor me via GitHub or PayPal or Revolut

  33. #33
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Ein vorgegebenes Script in einen Ordner zu kopieren und dort ein paar Werte zu ändern, würde ich noch nicht als programmieren bezeichnen

    Den Befehl kann ich leider nicht ausführen, da ich keinen SSH-Zugriff auf diesen Account habe.

  34. #34
    Contao-Nutzer Avatar von wdm
    Registriert seit
    11.04.2011.
    Beiträge
    236

    Standard

    Hat denn jemand eine Idee, warum der Alias, den ich direkt per verstecktem Feld über das Formular in die Datenbank schreibe (ohne den Hook), nicht als solcher erkannt wird, sondern erst nach dem Aufrufen und Speichern im Backend?
    Wenn ich dieses Problem gelöst hätte, bräuchte ich den Hook auch gar nicht mehr.

  35. #35
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.747
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von wdm Beitrag anzeigen
    Den Befehl kann ich leider nicht ausführen, da ich keinen SSH-Zugriff auf diesen Account habe.
    als Workaround kannst Du "dump" verwenden und damit was ausgeben "dump($variable);" oder "dump('bin hier!!');" - beim Formular würde ich aber "dd($variable);" (dump&die) einsetzen

    Debugmodus vorher aktivieren!

Aktive Benutzer

Aktive Benutzer

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

  1. VGT

Lesezeichen

Lesezeichen

Berechtigungen

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