TechTip - OroCommerce - Voir le code HTML des emails

Le système d'emails d'OroCommerce est basé sur les entités EmailTemplate. Le HTML des emails peut être modifié via l'éditeur wysiwyg TinyMce intégré à OroCommerce. Ceux qui ont déjà mis en place ce genre de mail le savent : un email HTML avec mise en forme est technique et contient généralement du code bien spécifique pour la mise en forme.

La documentation d'Oro montre qu'il peut être nécessaire d'éditer le HTML. La mise en place du wysiwyg  enlève cette possibilité car le bouton permettant la bascule entre WYSIWYG et code n'apparaît pas dans la toolbar.

Voici donc un patch maison pour activer le fameux bouton dans la toolbar (ce n'est peut être pas la meilleure manière, mais ça marche et c'est fiable) :

--- src/Oro/Bundle/EmailBundle/Form/Type/EmailTemplateType.php	2020-11-09 05:55:44.835985695 +0100
+++ src/Oro/Bundle/EmailBundle/Form/Type/EmailTemplateType.php	2020-11-09 05:54:38.229000000 +0100
@@ -154,11 +154,14 @@
             return [];
         }

+        $toolbarwithcode = OroRichTextType::$toolbars[OroRichTextType::TOOLBAR_LARGE];
+        $toolbarwithcode[0].=' | code';
         return [
             'valid_elements' => null, //all elements are valid
             'plugins' => array_merge(OroRichTextType::$defaultPlugins, ['fullpage']),
             'relative_urls' => true,
             'forced_root_block' => '',
+            'toolbar' => $toolbarwithcode
         ];
     }
 }

Si vous utilisez le plugin composer cweagans/composer-patches, vous pouvez enregistrer le pacth et ajouter le code suivant dans votre composer.json :

  "extra": {
    ....
    "patches": {
      "oro/platform": {
        "Add code button to email template wysiwyg": "patches/oro-platform-emailtemplate-wysiwyg-code-toolbar.patch"
      }
    }
  }

Il n'y a plus qu'à lancer "composer update" (et prendre un café parce qu'oro n'est pas encore passé à composer 2).

 

Notre agence E-Commerce B2B spécialisée OroCommerce à Nantes vous accompagne dès la définition de votre projet et tout au long du cycle de vie de votre site Ecommerce BtoB.