Fermer

juin 30, 2022

Création d’un processeur de pipeline Sitecore personnalisé


La personnalisation est cruciale

L’un des concepts de personnalisation essentiels de Sitecore est la possibilité de personnaliser globalement le flux de l’application sans avoir à ajouter un rendu à chaque page ou à inclure du code dans une mise en page universelle. La création d’un processeur de pipeline Sitecore personnalisé donne aux développeurs un moyen d’injecter leur code personnalisé dans le processus et c’est relativement facile à faire.

Deux des pipelines standard sont Initialize et HttpBeginRequest. Chaque pipeline contient différents processeurs. Pour des informations plus détaillées sur les processeurs et les pipelines spécifiques à MVC, vous pouvez vous référer au Documentation Sitecore en ligne. Il y a du contenu supplémentaire sur Site Github de la communauté Sitecore.

Qu’est-ce qu’un pipeline ?

Dans cet article, nous n’allons pas approfondir tous les pipelines et processeurs. Au lieu de cela, je prendrai quelques minutes pour montrer à quel point il est simple de créer un morceau de code personnalisé et de l’injecter dans le processus de rendu de Sitecore. Dans ce premier exemple, nous allons montrer comment remplacer les en-têtes de mise en cache HTML fournis par Sitecore avec son paramètre HtmlCaching et injecter à la place nos valeurs d’en-tête personnalisées qui correspondent à nos besoins.

Sitecore - Comprendre les approches de développement : une perspective de Sitecore

Si nous jetons un coup d’œil à Sitecore.config, nous trouverons un paramètre appelé « DisableBrowserCaching »

<!-- 
DISABLE BROWSER CACHING
If true, all pages will have:
Cache-Control: no-cache, no-store
Pragma: no-cache
in the http header
-->

<setting name="DisableBrowserCaching" value="true"/>

Comme mentionné dans le commentaire, avec ce paramètre défini sur vrai, Sitecore définira « no-cache, no-store » comme valeurs pour les valeurs d’en-tête de réponse HTTP Cache-Control. Il fournira également « privé » si la valeur est fausse. Pour ajouter notre valeur personnalisée, nous pouvons simplement injecter notre code après que Sitecore a fait son travail. Notre code s’exécutera après Sitecore et nous obtiendrons la valeur souhaitée. Pour plus d’informations sur la façon d’obtenir des précisions sur l’endroit où votre code s’exécute, consultez le message : Trucs et astuces pour patcher les processeurs Sitecore sur le blog Perficient.

Création d’un processeur de pipeline Sitecore personnalisé

Pour créer votre code personnalisé, créez une classe et assurez-vous qu’elle a un paramètre args avec un type qui correspond au type de processeur que vous essayez d’émuler. Dans ce cas, je veux que mon code s’exécute dans le pipeline ActionExecuted donc j’utilise ActionExecutedArgs comme type sur le paramètre args.

using Sitecore.Mvc.Pipelines.MvcEvents.ActionExecuted;
using System.Configuration;
using System.Web;

namespace MyCode.Pipelines.MvcActionExecuted
{
    public class CacheControl
    {
        public void Process(ActionExecutedArgs args)
        {
            HttpContext.Current.Response.AddHeader("Cache-Control", "my custom values");
        }
    }
}

Une fois que vous avez le code en place, vous pouvez patcher le Sitecore.config avec votre fichier de patch pour injecter votre code. Dans cet exemple, je dis à Sitecore que je veux que ma fonction Process dans ma classe CacheControl personnalisée s’exécute après que Sitecore ait exécuté son processeur CacheControl dans le pipeline MvcEvents.

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <pipelines>
            <mvc.actionExecuted>
                <processor patch:after="*[@type="Sitecore.Mvc.Pipelines.MvcEvents.ActionExecuted.CacheControl, Sitecore.Kernel"]" type="MyProject.MyCode.Pipelines.MvcActionExecuted.CacheControl, MyProject"/>
            </mvc.actionExecuted>
        </pipelines>
    </sitecore>
</configuration>

Et ensuite ?

Ceci est un exemple simple mais j’espère qu’il vous a donné quelques idées sur la façon dont vous pourriez être en mesure de créer une meilleure expérience dans Sitecore. Une fois que vous aurez commencé à lire les pipelines, vous aurez une meilleure idée des capacités. Quelques autres astuces intéressantes sont la possibilité d’exécuter un morceau de code chaque fois qu’un élément est enregistré ou publié, et d’exécuter un nettoyage dans une autre zone si un élément est supprimé. Quelle que soit la manière dont vous décidez de l’appliquer, j’espère que cela a été instructif et bonne chance dans vos aventures de pipeline personnalisées !






Source link