Étiquette : store

[Magento 2] Afficher de manière dynamique la base URL d’un store dans un bloc statique, un template PHTML, un layout XML

Note: billet amené à être enrichi au gré de mes besoins.

Doc officielle: Using Markup Tags in Links

Blocs CMS statiques

Documentation

Templates PHTML

Testé fonctionnel Magento 2.4:

Layouts XML

Pas testé:

[Magento] Concepts de base et terminologie

Websites and stores

Un website est une collection de stores qui elles-mêmes sont des collections de store views. L’articulation entre ces différentes entités se fait du général au particulier dans l’ordre suivant :

  1. Website
  2. Store
  3. Store view

Website

Un website est fait d’un ou plusieurs stores qui partagent les mêmes informations sur les clients, les commandes et le panier.

Stores

Le store est une collection de store views. Leur fonction principale est de fournir un container logique qui permet de regrouper les stores views correllées au sein d’un website.

Store views

Les instances de store (boutiques) dans Magento. La plupart des stores n’auront qu’une seule store view, mais la possibilité est laissée d’en affecter plusieurs (typiquement pour des projets multilingues).
Dans ce cas, vous pourriez créer un store unique et autant de store views que de langues voulues pour ce store.

Design packages and themes

  • Design packages
  • Themes

Design package

Une collection de thèmes en corrélation. Une instance de Magento peut en accueillir une multitude, mais un au moins doit être installé.
A l’installation, Magento est accompagné d’un package spécial nommé base. Un autre package sera également présent en fonction de l’édition de Magento que vous avez déployé :

  • Un package default dans l’édition CE
  • Un package pro dans l’édition PE
  • Un package enterprise dans l’édition EE

A ces packages de base peuvent s’ajouter vos propres packages (custom design packages).

Theme

Au sein d’un design package se trouvent les fichiers qui déterminent l’aspect graphique et les fonctionnalités front-end d’une boutique. Un thème Magento contient les éléments suivants :

  • Templating information : fichiers CSS, images, et fichiers JavaScript spécifiques au thème,
  • Skinning information : fichiers layout, fichiers template et locales spécifiques au thème.

Un thème donné ne peut appartenir qu’à un seul design package. Pas convention, chaque design package doit contenir un thème default. En plus de ça, un design package peut contenir une multitude de variations de ce thème default appellées non-default themes ou theme variant.

Structure d’un thème :

Fichiers de templating

Les fichiers de templating, qui définissent les contenus affichés dans les templates des différentes pages, se trouvent dans le répertoire app/design/frontend/<designPackageName>/<themeName>/ et sont organisés en sous-répertoires comme suit :

  • Layout

    Contient les fichiers XML qui définissent la structure des blocs dans les différentes pages, ainsi que les informations renseignées dans les balises meta et l’encodage de la page.

  • Template

    Contient les fichiers PTHML qui embarquent le markup HTML et le code PHP nécessaires à l’affichage de contenus bruts dans les pages.
    Il y a 2 types de templates : les templates de page et les templates de bloc.

  • Locale

    Contient des fichiers CSV, organisés par langue, qui embarquent des chaînes de translation pour l’ensemble des textes produits par Magento (éléments d’interface et messages, mais pas produits et catégories).

Fichiers d’habillage

Les fichiers d’habillage (skin), qui définissent l’habillage visuel des contenus, se trouvent dans le répertoire skin/frontend/<designPackageName>/<themeName>/ et sont organisés en sous-répertoires comme suit :

  • CSS

    Contient les feuilles de style.

  • Images

    Contient l’ensemble de simages utilisées par le thème.

  • JS

    Contient le code javaScript spécifique au thème. La plupart des librairies JavaScript embarquées nativement se trouvent dans un répertoire js à la racine du projet Magento.

Fallback hierarchy

Du particulier au général :

  1. Pour exécuter le rendu front, Magento cherche en premier lieu les fichiers dans package_name/theme_name/ (au plus profond de la hiérarchie des thèmes)
  2. Si il n’a rien trouvé, il remonte d’un cran dans la hiérarchie des thèmes (dans l’arborescence) et cherche les fichiers dans package_name/default/
  3. Si il n’a toujours rien trouvé, il remonte encore d’un cran dans la hiérarchie des thèmes et cherche les fichiers dans base/default/