Hi guys,
I am wondering if there is any way to include custom group fields in Ecom Navigation xml.
I see that by default they are not included.
Thank you,
Adrian
Hi guys,
I am wondering if there is any way to include custom group fields in Ecom Navigation xml.
I see that by default they are not included.
Thank you,
Adrian
No, but you can use C#.
Rapido does it like this:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" exclude-result-prefixes="msxsl user"> <msxsl:script language="C#" implements-prefix="user"> <msxsl:assembly name="Dynamicweb" /> <msxsl:assembly name="Dynamicweb.Ecommerce" /> <msxsl:assembly name="Dynamicweb.Core" /> <msxsl:assembly name="Dynamicweb.Security" /> <msxsl:assembly name="System.IO" /> <![CDATA[ /* * Get group number from group id in query string */ public string GetCustomFieldString(string groupLink, string systemName) { var match = System.Text.RegularExpressions.Regex.Match(groupLink, @"GroupID=(?<GroupID>[^&]+)"); if (match.Success) { var groupId = match.Groups["GroupID"].Value; var g = Dynamicweb.Ecommerce.Products.Group.GetGroupById(groupId); if (g != null && !string.IsNullOrEmpty(g.ProductGroupFieldValues.GetProductGroupFieldValue(systemName).Value.ToString())) { var ctaHeading = Dynamicweb.Core.Converter.ToString(g.ProductGroupFieldValues.GetProductGroupFieldValue(systemName).Value); return ctaHeading; } } return string.Empty; } public string GenerateHeadingImageUrl(string image) { string imageUrl = image; if (System.IO.Path.GetExtension(image).ToLower() != ".svg") { imageUrl = "/Admin/Public/GetImage.ashx?width=150&height=100&crop=5&DoNotUpscale=true&FillCanvas=true&Compression=75&image=" + @image; } return imageUrl.Replace("/Billeder", "/Files/Images"); } ]]> </msxsl:script>
<xsl:if test="count(Page) and /NavigationTree/Settings/LayoutNavigationSettings/@endlevel > @RelativeLevel"> <xsl:if test="@RelativeLevel=/NavigationTree/Settings/LayoutNavigationSettings/@ecomStartLevel"> <xsl:variable name="ctaImage" select="user:GetCustomFieldString(@Href, 'ctaImage')"/> <xsl:variable name="ctaHeading" select="user:GetCustomFieldString(@Href, 'ctaHeader')"/> <xsl:variable name="ctaLink" select="user:GetCustomFieldString(@Href, 'ctaLink')"/> <xsl:variable name="ctaLinkText" select="user:GetCustomFieldString(@Href, 'ctaLinkText')"/>
Hi Nicolai,
Got it. I can definitely use that.
Thank you
Adrian
You must be logged in to post in the forum