@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 $widget, string $formId, array $formData, Form $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.
Lesezeichen