magento cms

eZ Gento, une alternative au module CMS de Magento : traduction de contenu [Partie 2]

La gestion de contenu sous forme d'arborescence avec eZ-Gento est une avancée majeure, mais ce n'est qu'une infime partie des nouveautés devenues possibles...

Connaissez-vous la notion de "vue magasin" (store view) de Magento qui permet, entre autres, l'ajout de plusieurs langues à un même site e-commerce ?
En effet, des clients étrangés peuvent être amenés à visiter votre site Magento et les perdre sous prétexte qu'il ne comprennent pas la langue du site serait dommage... C'est pourquoi il est possible de créer plusieurs vues magasin et attribuer une langue différente à chacune.

Magento permet également de dupliquer des pages ou des blocs de contenus CMS et d'avoir ainsi une copie pour chaque vue magasin (et donc pour chaque langue).
Mais dans le cas d'un multilingue conséquent, avoir tant de pages avec un même identifiant peut devenir complexe et peu pratique pour les mises à jour.

Maintenant, tout est plus facile avec ez Gento et son mapping automatique entre la vue magasin Magento et les siteaccesses eZ Publish. En pratique, lorsque l'on accède à la vue magasin française, le siteaccess français eZ Publish sera appelé pour afficher son contenu. Ainsi, si la page demandée possède une traduction française, elle sera affichée.

Pour rappel, il existe deux manières principales de définir des traductions de contenus dans eZ Publish :

  • La première est l'ajout d'une traduction à une page existante. Ainsi, une arborescence unique contient des pages avec deux (ou plus) traductions.
  • La seconde est de définir autant d'arbre que de langues. (Ce qui est pratique lorsqu'on ne souhaite pas se donner de limite ou lorsqu'on veut étendre le site par rapport au contenu du site initial.)

Bien sur, il est possible de mélanger les deux méthodes et d'ajouter seulement quelques pages à la nouvelle langue, ou de simplement ne pas traduire certaines d'entre elles.

Quant à l'accessibilité des URLs, eZ Publish est muni d'un outil complet de réécriture : à chaque langue sa propre URL. Par défault, elle est créée à partir du titre de la page, mais il est également possible de la rendre paramétrable et de la définir manuellement pour chaque page.

Pour en savoir plus sur les fonctionnalités multilingue, n'hésitez pas à consulter la page de documentation d'eZ Publish.

Tout ce qu'il est possible de faire avec eZ Publish est maintenant disponible dans Magento grace à eZ Gento !

eZ Gento

La traduction dans Magento

Dans Magento, la traduction entre différentes langues est assez simple. Pour un développeur expérimenté ayant déjà travaillé sur des frameworks PHP, cela se passe de commentaires. Par contre, pour un débutant qui souhaite lancer son premier site Magento, quelques explications peuvent être utiles.

Tous les textes de la page nécessitant une traduction sont dans un fichier CSV du répertoire /app/locale/[language]. La partie [language] du chemin étant à construire à partir du code langue, exemple: 'fr_FR' ou 'en_US'.

En regardant le contenu des fichiers, vous constaterez que la structure de chaque fichier est identique, une ligne contient deux textes: une pour la langue par défaut, et une pour la langue cible. Ces fichiers - aussi appelé "dictionaries" - doivent être déclarés dans le fichier de configuration des modules (config.xml). Vous devez mettre ce code directement dans le noeud du fichier de configuration de votre frontend ou admin.

<translate>
        <modules>
                <companyname_modulename>
                        <files>
                        <default>CompanyName_ModuleName.csv</default>
                        </files>
                </companyname_modulename>
        </modules>
</translate>

C'est tout. Maintenant, lorsque vous voulez utiliser une phrase qui doit être traduite, utilisez :

echo $this->__('text to translate');

Magento cherchera 'text to translate' dans votre fichier dictionnaire et retournera le texte correspondant dans la langue appropriée.

Traduction par Guillaume Morice

eZ Gento, une alternative au module CMS de Magento [Partie 1]

Magento est une superbe solution e-Commerce. Elle offre de nombreuses fonctionnalités en terme de gestion de produits, de soldes, de promotions, et caetera. Cependant, certains utilisateurs ont des besoins plus poussés pour ce qui est du système de gestion de contenu (CMS). De simples pages peuvent suffire pour les sites qui n'en ont que quelques-une (telles que la page d'accueil, les crédits, les mentions légales...). Mais cela peut s'avérer insuffisant si vous désirez ajouter plus de cinquante pages, dans différentes langues.
Il serait bien entendu tout à fait possible développer des modules additionnels, des fonctions et des blocks qui permettraient de grouper les pages dans une structure hiérarchique, mais cela représenterait une part conséquente (en terme de coûts) des développements.
Ainsi Baobaz a mis en place une connexion entre Magento et le CMS eZ Publish. Cette solution permet d'afficher des pages eZ Publish directement dans la boutique Magento.

eZ Publish, c'est quoi ?
eZ Publish a de nombreux point communs avec Magento.

  • Comme Magento est l'une des meilleures (si ce n'est la meilleure) solution e-Commerce open source, eZ Publish l'une des meilleures solutions de CMS d'Enterprise.
  • Comme Magento, c'est une superbe plateforme AMP pour le developpement de nouvelles extensions.
  • Comme Magento, il s'adosse sur une vaste communauté de développeurs.
  • Comme Magento, il a de nombreuses références.
  • Comme Magento avec Varien, il a été développé par eZ Systems, une solide société à but lucratif.
  • ...allez voir sur http://ez.no/ pour plus de détails !

Quels sont les gains apportés par eZ Publish?
Ils sont nombreux :

  • un structure hiérarchique,
  • des contenus multilingues,
  • la gestion des versions des pages,
  • un circuit de validation des contenus,
  • l'insertion directe de contenus multimédias,
  • et bien plus...

Imaginez que vous puissiez parcourir un arbre de contenus à coté du catalogues, consulter des pages dans des langues différentes en fonction de la vue de magasin (Store View).
Il devient également possible de définir de petits arbres de contenus et de les placer dans diverses catégories de produits. En outre vous n'avez pas besoin de vous soucier des liens à placer dans différents templates Magento.
Tout est généré automatiquement à chaque fois qu'une page a été créée, ou qu'une page existante a été modifiée.

Tout ce qui précède est rendu possible grâce à la fusion de Magento et d'eZ Publish : eZ-Gento.
Les deux solutions sont installées côte-à-côte et contiennent des extension responsables de la communication.
Chaque fois qu'un contenu est accédé par un utilisateur, le module Magento passe une partie de l'url à eZ Publish et récupère le contenu HTML généré. Un tel contenu peut être affiché directement sur la page d'accueil, sur une page fille ou dans un block CMS au sein d'une page produit.

Voici pour l'introduction. Si vous souhaitez en savoir davantage sur les fonctionnalités d'eZ-Gento, restez à l'écoute !

Utiliser le CMS natif pour créer des contenus multilingues dans Magento

La solution e-Commerce Magento intègre nativement des fonctionnalités de CMS.

Deux types d'objet sont ainsi mis à votre disposition afin de créer les contenus de votre site Magento :

  • Les pages, qui vous permettent d'afficher des informations générales telles que vos conditions générales de vente, informations de contact, implantations de magasin, et caetera.
  • Les blocks statiques ("statiques" n'étant pas tout à fait le terme approprié comme nous le verrons plus bas, comprenez qu'il s'agit tout simplement de blocks dont le contenu est modifiable directement depuis le back-office, sans modification de code source php), qui vous permettent de saisir des informations devant être généralement affichées sur plusieurs pages, telles que pieds de pages, en-têtes, mais aussi des informations ponctuelles (fermeture prévisionnelle du site, promotions...).

Notez que ces objets, pages ou blocks statiques, peuvent contenir des éléments dynamiquement calculés et qu'il est même relativement aisé de mettre à disposition du webmaster en charge du contenu un panoplie de fonctions développées sur mesure (date et heure du jour, nombre d'internautes connectés, dernier article vendu...).

De surcroît, ces pages et blocks peuvent également contenir d'autres blocks, statiques (donc dont le contenu est modifiable ici) ou non (blocs d'articles, blocs de meilleures ventes Magento...).

Enfin, ces pages et blocs s'insèrent parfaitement dans la logique du design Magento et, à ce titre, pour un même identifiant (identifier) de page ou de bloc statique, vous pourrez (sans y être obligé) en créer une version par vue de magasin (Store View Name). Il devient alors très simple de créer un contenu spécifique pour chacune des langues de votre site internet Magento et le système affichera la version correspondant à la langue de l'internaute sans que vous n'ayiez eu à programmer la moindre ligne de code.

Bien entendu le système n'est pas exempt de défaut et on regrettera en particulier :

  • l'absence d'outil d'édition en texte riche,
  • l'impossibilité de gérer du contenu de manière hiérarchique,
  • le manque de gestion de formulaire en ligne.

Nous verrons donc très prochainement comment palier ces manques.