Les modificateurs permettent de modifier les valeurs d'un champ avec une méthode PHP. Il existe par défaut plusieurs modificateurs avec lequels vous pourrez entre autre :
- supprimer les espaces de début et fin de chaîne
- augmenter le prix de N%
- remplacer une partie d'une chaîne
Fonction PHP
Vous pouvez exécuter n'importe quelle fonction PHP. Par exemple si vous souhaitez retirer les espaces de fin et début de chaîne :
<advancedimporter>
<product external-reference="demo-1">
<name>Name</name>
<description modifier="trim">Product description</description>
<price>50</price>
</product>
</advancedimporter>
Si vous souhaitez supprimer un autre caractère que les espaces :
<advancedimporter>
<product external-reference="demo-1">
<name>Name</name>
<description modifier="trim(/)">Product description</description>
<price>50</price>
</product>
</advancedimporter>
Méthode du module
Opérations arithmétiques
<advancedimporter>
<product external-reference="demo-1">
<name>Name</name>
<description>Product description</description>
<price modifier="HelperNumber::calculate">2 * (50 + 5)</price>
</product>
</advancedimporter>
Il existe d'autres modificateurs :
- valeur négative : neg
- valeur absolue : abs
- reste de la division euclidienne : modulo
Opération sur les chaînes
Ce modificateur remplace le mot "love" par un "♥" :
<advancedimporter>
<product external-reference="demo-1">
<name>Name</name>
<description modifier="HelperString::replace(love,♥)">Product description</description>
<price>50</price>
</product>
</advancedimporter>
Ce modificateur tronque les chaînes trop longues :
<advancedimporter>
<product suppier-reference="demo">
<name modifier="HelperString::truncate(32)">Really long name test test test test test test test test test test test</name>
</product>
</advancedimporter>
Mise en garde
Attention, les paramètres ne peuvent pas être entourés d'espaces. Cet exemple ne fonctionne pas :
<advancedimporter>
<product external-reference="demo-1">
<name>Name</name>
<description modifier="HelperString::replace(love ,♥)">Product description</description>
<price>50</price>
</product>
</advancedimporter>
Créer votre propre modificateur
Si vous souhaitez créer votre propre modificateur, vous devez créer une classe helper dans le dossier modules/advancedimporter/classes/helper.
Ne modifiez pas les helpers existants : les mises à jour du module écraseront vos modifications.
Le nom de la classe de l'helper doit être en camelcase et débuter par Helper. Le nom du fichier doit être le nom de la classe sans le helper initial. Il doit être en minuscule.