web-dev-qa-db-fra.com

La règle de validation côté serveur est introuvable

J'ai ajouté un champ personnalisé à com_content, et tout fonctionne à merveille. J'essaie maintenant d'ajouter une validation côté serveur, et après avoir suivi tous les tutoriels et exemples que j'ai pu trouver, en particulier celui-ci , cela échoue car la règle n'est pas trouvée.

La règle souhaitée est presque identique à la validation d'un nom d'utilisateur. Je l'ai donc copié/renommé comme point de départ. Les fichiers/chemins existent, et le chargement/sauvegarde fonctionne correctement.

Y a-t-il des informations supplémentaires que je ne fournis pas ou peut-être des yeux neufs qui me feront me sentir stupide quand elles seront signalées?

A partir du B/E, cliquer sur "Enregistrer" provoque cette erreur:

Une erreur est survenue.

0 Règle JForm :: validateField () mycode manquante.

XML de champ personnalisé (fonctionne comme prévu, sauf validation du serveur)

<?xml version="1.0" encoding="utf-8"?>
<form addfieldpath="/administrator/components/com_mycomponent/models/rules">
    <fields name="params">
        <fieldset name="MyFields" label="My Info">
            <field name="my_code"
                type="text" size="15"
                validate="mycode"
                label="My Code"
                />
        </fieldset>
    </fields>
</form>

/administrateur/composants/com_mycomponent/models/rules/mycode.php

//jimport('joomla.form.formrule');   does not work with or without this
class JFormRuleMycode extends JFormRule
{
    public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null) {
        return true;
    }
}
5
GDP

Il semble que vous deviez spécifier le chemin d'accès et le mettre au bon endroit, lol! Le problème était de spécifier un chemin pour le champs au lieu de pour le règles!

Cette correction a résolu le problème:

<form>
    <fields name="params" addrulepath="/administrator/components/com_mycomponent/models/rules">
4
GDP