Wie kann ich eine benutzerdefinierte Nachricht für eine fehlgeschlagene JFormRule-Validierung bereitstellen?

7

Wenn ein benutzerdefiniertes Feld überprüft wird und der Test fehlschlägt, gibt Joomla die folgende Standardfehlermeldung zurück:

**Warning** Invalid field: My Field

Wie kann ich die zurückgegebene Nachricht angeben, um zu erklären, warum sie ungültig ist?

BIP
quelle

Antworten:

3

Fügen Sie das messageAttribut hinzu, aber besser so:

<field name="my_code" type="text" size="15" label="My Code"
  validate="myrule" message="Field may only contain A-z or 0-9" />

:) :)

Fedik
quelle
hat nicht funktioniert. Ich habe das Attribut mit einer benutzerdefinierten Nachricht platziert, aber alles, was ich sehe, ist ein ungültiges Feld: Titel beim Senden.
RT
Stimmen Sie dem vorherigen Kommentar zu. Funktioniert nicht mit Joomla 3.6.5. Ist das Verhalten von der verwendeten Vorlage abhängig?
coder.in.me
1

Fügen Sie für eine Nachricht, die variieren kann, das folgende messageAttribut hinzu:

public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null)
{
    if(!preg_match('/^[a-z0-9]+$/i', $value)) {
        $element->addAttribute('message', 'Field may only contain A-z or 0-9');
        return false;
    }elseif(!$somethingelse) {
        $element->addAttribute('message', 'Something else is wrong');
        return false;
    }
BIP
quelle
Welche Datei soll diesen Code hinzufügen?
RT
Schauen Sie sich diese Frage / Antwort für einige Details der Formularvalidierung an: joomla.stackexchange.com/questions/4037/…
BIP
Eine leichtere Bedingung, die genauso ctype_alnum()funktioniert wie Ihr regulärer Ausdruck, ist die oft übersehene Funktion. if (!ctype_alnum($value)) { php.net/manual/en/function.ctype-alnum.php
mickmackusa