Skip to content

Instantly share code, notes, and snippets.

@sreekrishnan1993
Created April 11, 2024 13:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sreekrishnan1993/82c182e137aa4c40b700c68687c65312 to your computer and use it in GitHub Desktop.
Save sreekrishnan1993/82c182e137aa4c40b700c68687c65312 to your computer and use it in GitHub Desktop.
Scriban Embedded function to get List of Categories
using System.Collections.Generic;
using System.Linq;
using MyProject.Models;
using Scriban.Runtime;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.XA.Foundation.Scriban.Pipelines.GenerateScribanContext;
namespace MyProject.Pipelines.GenerateScribanContext
{
public class AddCategoryFunction : IGenerateScribanContextProcessor
{
private delegate List<CategoryModel> GetCategoriesDelegate(Item currentPageItem);
public void Process(GenerateScribanContextPipelineArgs args)
{
args.GlobalScriptObject.Import("sc_article_getcategories", new GetCategoriesDelegate(GetCategories));
}
public List<CategoryModel> GetCategories(Item currentPageItem)
{
List<CategoryModel> articleCategories = new List<CategoryModel>();
// Perform your code logic here
return articleCategories;
}
}
}
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
<sitecore role:require="Standalone or ContentManagement or ContentDelivery">
<pipelines>
<generateScribanContext>
<processor type="MyProject.Pipelines.GenerateScribanContext.AddCategoryFunction, MyProject" resolve="true" />
</generateScribanContext>
</pipelines>
</sitecore>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment