Closed Frolipon closed 7 years ago
@Frolipon À tester
On peut donc surcharger une variable globale par une variable locale.
Mailing : https://badsender-test.herokuapp.com/editor/5893660d3e65af000cac8df2
Template : https://badsender-test.herokuapp.com/wireframes/58935a873e65af000cac8de2
@Frolipon Je te laisse fermer le ticket.
Pour information le code du template “témoin”
https://github.com/goodenough/mosaico/tree/february-2017/templates/sub-themes
En zip le code tel que fourni à Voidlab
Bon, j'ai tenté sur un template plus complexe, mais je me suis cassé les dents dessus. Quand tu auras un peu de temps, on pourra checker ce qui ne va si c'est OK pour toi
@Frolipon Pas de problèmes.
J'ai vraiment essayé de détailler la logique dans sub-theme. Si ce n'est pas clair là dedans ça pourrait être intéressant de voir pourquoi et d'améliorer ce template.
Ça pourrait servir de fichier de documentation à terme
Vu, fermé, thanks :-)
style="color: #00000; -ko-color: @[myBrand eq "brand1" ? '#110000': myBrand eq "brand2" ? '#001100' : '#000011'];"
parstyle="color: #00000; -ko-color: @[myBrand eq 'brand1' ? '#FF0000': myBrand eq 'brand2' ? '#00FF00' : '#0000FF'];"
et ça fonctionne. Par contre pas de variables globales…_root_
La variable globale est bien interprété dans tes tags mais PAS dans des attributs
Hello,
J'ai un souci avec une fonctionnalité proposée par Mosaico suite à une question de ma part ( https://github.com/voidlabs/mosaico/issues/273 )
L'objectif est le suivant: Définir une dropdown appelée "myBrand" . Sur base de la valeur choisie dans cette Dropdown, pouvoir définir un ensemble de style graphique dans les blocs qu'on insère dans l'interface WYSIWYG. Exemple: Le client possède plusieurs sous-marques, et ne souhaite pas que les commerciaux puissent faire n'importe quoi avec la charte graphique. Donc sur base de la sélection de la sous-marque, l'ensemble des codes couleurs sera déjà défini.
Mosaico propose 2 solutions:
Leur solution consiste à mettre en place un if / else dans l'attribut color comme suit: Définir dans le template la propriété myBrand:
template { label: Page; properties: myBrand=brand1; }
Et définir dans l'attribut color dans les blocs:
color: @[myBrand eq "brand1" ? '#110000': myBrand eq "brand2" ? '#001100' : '#000011']
En testant cette solution, elle ne fonctionne pas. Le fichier de test test_color_hard ci en pièce jointe permet de tester ceci. Il y a un bloc conditionnel qui s'affiche en fonction de la variable myBrand (afin de tester que celle-ci soit bien prise en compte) et un texte qui devrait avoir une couleur définie en fonction de la variable choisie. Or en téléchargeant l'HTML depuis le builder, le code:
color: @[myBrand eq "brand1" ? '#110000': myBrand eq "brand2" ? '#001100' : '#000011']
reste en dur dans le code HTML, sans prendre en compte les instructions qui sont dedans.J'ai testé une solution alternative en fixant la variable color en dur, et en appelant le code spécifique Mosaico pour overrider cette variable. Cette technique est utilisée pour la plupart des templates, la seule différence avec l'utilisation standard de la technique est l'appel if / else aux couleurs. Technique standard: On définit une variable de couleur:
chosenColor { widget: color; }
Et dans les blocs on a :
color: #ffffff; -ko-color: @chosenColor;
Pour les tests de couleurs variables en fonction du paramètre myBrand, j'ai testé:
color: #ffffff; -ko-color: @[myBrand eq "brand1" ? '#110000': myBrand eq "brand2" ? '#001100' : '#000011'];
En testant cela, j'ai une erreur lorsque je tente de créer un email avec ce template:
L'objectif de ce ticket est de voir où ça coince par rapport à la solution proposée par Mosaico, et, si nécessaire, revenir vers eux en leur demandant de l'aide.
test_color.zip