Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Mitglieder Registrierung PLZ validieren

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard Mitglieder Registrierung PLZ validieren

    Hallo,

    in einem Webprojekt, genauer gesagt in einem Isotope-Webshop, möchte/muss ich die Postleitzahlen für die Länder Österreich und Deutschland validieren.

    Erlaubt sind Registrierungen für Österreich und Deutschland » Österreich soll 4-stellig abgefragt sein und Deutschland soll 5-stellig abgefragt sein. Ich gehe mal davon aus, dass es keine 4-stelligen PLZ in Deutschland gibt

    Also soll eine Eingabe von Österreich mit 5 Stellen oder Deutschland mit 4 Stellen nicht möglich sein.
    Gibt's dazu eine Erweiterung? Oder kann mir jemand mitteilen, wie oder wo ich das abfragen könnte?

    vielen Dank

    [EDIT 19.10.2021] - Kleinauftrag ausgeschrieben
    Geändert von derRenner (19.10.2021 um 07:19 Uhr)
    Grüsse
    Bernhard


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

    Standard

    https://docs.contao.org/dev/referenc...dateFormField/ sollte Dich zum Ziel bringen. Dort hast Du über das $widget die Daten des zu validierenden Formularfelds (bei Dir die PLZ) und über Input:ost('...') solltest Du an die Daten der anderen Formularfelder (in Deinem Fall das Land) zur kommen. Damit hast Du alles für die Prüfung.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

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

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    bin ich mir nicht sicher, ob der Hook hier greift - ist schließlich Isotope... ggf. gibt es hier einen eigenen Hook

  4. #4
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    @fiedsch, Danke für die Antwort, die mich aber insofern nicht weiter bringt, da ich keine Ahnung habe, wie ich den Hook angehen könnte - resp. die Abfrage machen müsste

    PHP-Code:
    // src/EventListener/ValidateFormFieldListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Contao\Form;
    use 
    Contao\Widget;

    /**
     * @Hook("validateFormField")
     */
    class ValidateFormFieldListener
    {
        public function 
    __invoke(Widget $widgetstring $formId, array $formDataForm $form): Widget
        
    {
            if (
    'myform' === $formId && $widget instanceof \Contao\FormTextField && 'mywidget' === $widget->name) {
                
    // Do your custom validation and add an error if widget does not validate
                
    if (!$this->validateWidget($widget)) {
                    
    $widget->addError('My custom widget error');
                }
            }

            return 
    $widget;
        }

    Wenn ich das richtig verstehe, müsste ...
    'myform' bei mir 'tl_registration_31' sein
    'mywidget' bei mir 'postal' sein
    // Do your custom validation and add an error if widget does not validate » hier müsste ich wohl vergleichen ... und da habe ich keinen Schimmer wie
    In der Theorie stellt sich das für mich so dar, dass ich 'postal' mit dem ausgewählten Land vergleiche und abfrage, ob 4- oder 5-stellig. Wie das in er Praxis aussehen könnte, verstehe ich leider nicht. Auch nicht, wie ich das Errorereignis 'My custom widget error' eintragen müsste.

    Aber ich habe hier ja einen Kleinauftrag eingetragen ... vielleicht kann mir das ja jemand anbieten.
    Grüsse
    Bernhard


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
  •