Attention : doc en cours de rédaction …
Surcharger le template qui affiche la liste de produits
Arborescence standard : où trouve-t’on les templates standards ?
|
Plugins |_ Modules |_ Rbs |_ Catalog |_ Assets |_ Twig |_ Blocks |_ product-list.twig |_ product-list-directives.twig |_ product-list-item.twig |
Deux types de fichiers concernés : les directives Angular JS et les blocs
Arborescence d’un thème personnalisé : où consigner nos surcharges des templates standards ?
|
App |_ Themes |_ Project |_ [nom_de_votre_plugin] |_ Assets |_ I18n |_ fr_FR |_ admin.json |_ Twig |_ Project_[nom_de_votre_plugin] |_ Blocks |_ rbs-catalog-product-list.twig |_ Rbs_Catalog |_ product-list-directives.twig |_ product-list-item.twig |_ blocks-templates.json |
blocks-templates.json : déclarer l’existence d’une surcharge de template pour la rendre exploitable en backoffice.
Le fichier json permet également de passer un certain nombre de paramètres.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
{ "Rbs_Catalog_ProductList": { "templates": { "Project_Kidiliz:rbs-catalog-product-list.twig": { "label": "t.project.kidiliz.admin.template_rbs_catalog_product_list", "parameters": { "itemsPerLine": { "type": "Integer", "defaultValue": 3, "label": "m.rbs.catalog.admin.product_list_items_per_line" }, "showOrdering": { "type": "Boolean", "defaultValue": true, "label": "m.rbs.catalog.admin.product_list_show_ordering" } } } } } |
admin.json : créer une locale pour identifier votre nouveau template en backoffice.
|
{ "label": { "message": "[nom_de_votre_theme]" }, "template_rbs_catalog_product_list": { "message": "Liste produits" } } |
Nomenclature
La surcharge d’un template se trouvant nativement dans le répertoire Plugins/Modules/[nom_du_vendor]/[nom_du_module]/Assets/Twig/Blocks/
se fera obligatoirement dans le répertoire App/Themes/[nom_du_vendor]/[nom_de_votre_plugin]/Assets/Twig/[nom_du_vendor]_[nom_de_votre_plugin]/Blocks/
.
Ainsi, pour notre exemple de liste produits, le template product-list.twig
se trouvant nativement dans le répertoire Plugins/Modules/Rbs/Catalog/Assets/Twig/Blocks/
se fera obligatoirement dans le répertoire App/Themes/Project/[nom_de_votre_plugin]/Assets/Twig/Project_[nom_de_votre_plugin]/Blocks/
.
Attention : l’unique emplacement censé regrouper les surcharges de l’ensemble des templates des répertoires Twig/Blocks/
de tous les modules de Change Cross Commerce pouvant se retrouver rapidement saturé de fichiers, il est conseillé pour optimiser la lisibilité de préfixer les libellés de vos fichiers surchargés.
Ainsi, la surcharge du fichier standard product-list.twig
pourrait se nommer rbs-catalog-product-list.twig
pour [nom_du_vendor]-[nom_du_plugin]-[nom_du_template_standard].twig
.
Utilisation de {% extends %} : rbs-catalog-product-list.twig
|
{% extends 'Rbs_Catalog/Blocks/product-list.twig' %} |
Utilisation de {% use %} : product-list-directives.twig
|
{% use '@Rbs_Base/Rbs_Catalog/product-list-directives.twig' %} |
rbs-order-order-detail.twig
On n’utilise ni {% extends %}
, ni {% use %}
dans ce cas là :
|
{% block rbsOrderOrderDetailUse %} {% use 'Rbs_Generic/icon-templates.twig' %} {% use 'Rbs_Order/order-templates.twig' %} {% use 'Rbs_Productreturn/return-templates.twig' %} {% endblock rbsOrderOrderDetailUse %} [ Vos ré-écritures de code ... ] |
Remarque : Les surcharges de fichiers issus des répertoires Blocks/
peuvent contenir des directives Angular issues des fichiers [libellé]-directives.twig
. Ceci évite de surcharger un fichier supplémentaire.