using Sitecore.Data.Items;
using Sitecore.Mvc.Analytics.Pipelines.Response.CustomizeRendering;
using Sitecore.Pipelines;
using Sitecore.Pipelines.ResolveRenderingDatasource;
public class CustomMVCResolveRenderingDataSource : CustomizeRenderingProcessor
{
public override void Process(CustomizeRenderingArgs args)
{
var rendering = args.Rendering;
//Get the Site Item
var contextSiteItem = GetSiteItem(Context.Item);
if (!string.IsNullOrEmpty(rendering.DataSource) && contextSiteItem != null)
{
if (rendering.DataSource.Contains("$SiteName"))
{
rendering.DataSource = rendering.DataSource.Replace("$SiteName", contextSiteItem.Name);
Item sourceItem = Context.Database.GetItem(rendering.DataSource);
if (sourceItem != null)
{
rendering.DataSource = sourceItem.ID.ToString();
}
}
}
//Initialize the resolved DataSource to ResolveRenderingDatasourceArgs
var renderingDSArgs = new ResolveRenderingDatasourceArgs(rendering.DataSource);
CorePipeline.Run("resolveRenderingDatasource", renderingDSArgs);
rendering.DataSource = renderingDSArgs.Datasource;
}
}
Sitecore.Mvc.Analytics 10.3 doesn't contain a definition for Sitecore.Mvc.Analytics.Pipelines.Response.CustomizeRendering
user3056623
- 33
- 2