Dans le cas d’un site qui dispose de plusieurs store views (un Magento 2 multi-sites) la commande app:config:dump
ne réalise pas un dump complet de la configuration faite en Admin de l’ensemble de vos sites. Le fichier config.php généré ne contient que les informations du scope Default Config (mon exemple ci-dessous):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php return [ 'system' => [ 'default' => [ 'themecore' => [ 'general' => [ 'primary_color' => [ 'theme_color' => 'ED8B00', 'text_on_theme_color' => 'FFFFFF', 'link_on_theme_color' => 'FFFFFF', 'linkhover_on_theme_color' => 'FFFFFF', ], ], ], ], ] ]; |
La valeur de la clé theme_color
est pourtant redéfinie pour chacun de mes store view!
Nous pouvons compléter ce fichier config.php à la main en allant récupérer les informations manquantes en base de données, dans la table core_config_data
.
Dans l’illustration ci-dessus, j’ai par exemple effectué une recherche sur une valeur de la clé theme_color
(qui représente un champ en BO) qui n’a pas été dumpée via la commande app:config:dump
.
Pour répercuter ces informations dans le fichier app/etc/config.php, je me suis servi du scope (stores) et du path (themecore/general/primary_color/theme_color) stockés dans la table pour reconstituer le chemin au bon endroit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php return [ 'system' => [ 'stores' => [ 'fr_paysage' => [ 'design' => [ 'theme' => [ 'theme_id' => 'frontend/Vendor/themetwo', ], ], 'themecore' => [ 'general' => [ 'primary_color' => [ 'theme_color' => '99cc00', ], ], ], ], 'default' => [ 'design' => [ 'theme' => [ 'theme_id' => 'frontend/Vendor/themethree', ], ], 'themecore' => [ 'general' => [ 'primary_color' => [ 'theme_color' => '936037', ], ], ], ], ] ] ]; |