Jump to content
Romain Websenso

Modification du validator Product->name ne marche pas

Recommended Posts

Bonjour,

Depuis une mise à jour récente sur presta 1.7.6.5 ma surcharge de Product pour modifier le validator sur le champ name ne marche plus.

Et même en modifiant le validator dans le modèle ça ne change rien (j'ai besoin de pouvoir mettre des > et < dans le nom). J'ai essayé isString ou isAnything mais non.

J'ai essayé de dump & die dans les méthode du validator mais elles ne sont pas appelée.

Où est ce que c'est géré à présent? ou ais-je raté quelque chose?

Share this post


Link to post
Share on other sites

La dernière version de Presta utilise Symfony pour le traitement du code, vous pouvez oublier les anciens controleurs et classes Presta.

Bon courage^^

Share this post


Link to post
Share on other sites

Oui je sais, c'est en partie pour le mieux (j'aimais bien pouvoir override tout de même).

Là je MAj de 1.7.2 à 1.7.6.5 et il utilise tjr les définitions du modèle comme le "size" alors je me dit que le validator doit être géré qqe part aussi.

Share this post


Link to post
Share on other sites
Posted (edited)

J'ai trouvé où c'était géré à présent :

Dans le fichier src\PrestaShopBundle\Form\Admin\Product\ProductInformation.php ligne 164.

On se trouve la regex qui valide le name.

Par contre normalement il doit y avoir un hook appelé pour chaque formulaire des controllers admin : action<AdminControllerName>FormModifier (voir https://devdocs.prestashop.com/1.7/modules/concepts/hooks/list-of-hooks/ ).

Mais j'ai beau greffer un module sur actionAdminProductsControllerFormModifier ou actionAdminProductsFormModifier il est jamais trigger.

Le hook n'existe pas? rappel je suis en 1.7.6.5.

Edited by Romain Websenso (see edit history)

Share this post


Link to post
Share on other sites

Comme @Eolia on va patienter qu'un spécialiste de la version 1.7, pardopn, des versions 1.7 avec symfony vienne éclairer nos lanternes car si PrestaShop pousse cette version dans les mains du publique je n'ai pas constaté le moindre support sur ce forum en provenance des pro symfony et de cette 1.7 ... peut être qu'elle n'existe que pour qu'ils puissent faire du business, je ne sais guère.

Share this post


Link to post
Share on other sites
Posted (edited)
Le 21/07/2020 à 10:59 AM, Romain Websenso a dit :

(j'ai besoin de pouvoir mettre des > et < dans le nom)

Pourquoi faire ? Je ne comprends pas l'utilité, donnez moi un exemple.

Edited by Andriano (see edit history)

Share this post


Link to post
Share on other sites

C'est pour un client qui vend des produits pour des labo et centre de recherche, les nom des produits sont très technique et certains ont un indice de "pureté" genre ">95%".

Share this post


Link to post
Share on other sites

Solution :

Modifier d'abord : prestashop/classes/validate.php

public static function isCatalogName($name)
    {
        // return preg_match(Tools::cleanNonUnicodeSupport('/^[^<>;=#{}]*$/u'), $name);
        return preg_match(Tools::cleanNonUnicodeSupport('/^[^;=#{}]*$/u'), $name);
    }

Puis : prestashop\src\PrestaShopBundle\Form\Admin\Product\ProductInformation.php

'constraints' => [
                        new Assert\Regex([
                            // 'pattern' => '/[<>;=#{}]/',
                            'pattern' => '/[;=#{}]/',
                            'match' => false,
                        ]),
                        new Assert\NotBlank(),
                        new Assert\Length(['min' => 3, 'max' => 128]),
                    ],

Il faut ces deux modifications. Si tu regarde bien les "<>" ont été supprimé. Pense toujours à commenter le code d'origine pour revenir à l'ancienne version du code(mets des commentaires pour comprendre pourquoi tu as modifié ces codes afin de t'y retrouver).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More