Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
SDL SmartTarget tag demo of variables in the promtion query in a SDL SmartTarget enabled page. This is ASPX code. See https://gist.github.com/jhorsman/8363387 for the JSP version.
<%@ Page Title="SDL SmartTarget tag demo" Language="C#" %>
<%@ Register Assembly="Tridion.SmartTarget" Namespace="Tridion.SmartTarget.Web.UI" TagPrefix="smarttarget" %>
<%@ Import Namespace="System.Web" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>SmartTarget tag demo</title>
</head>
<body>
<h1>SmartTarget tag demo</h1>
<p>
<ul>
<li>Demo of the strucure of SDL SmartTarget controls for promotions. There are more SmartTarget controls in the SmartTarget library.</li>
<li>To make this work with your SmartTarget server update the following:
<ul>
<li>publication attribute &lt;smarttarget:query&gt;</li>
<li>region attribute in &lt;smarttarget:promotions&gt;</li>
<li>optional: odata URL</li>
<li>don't forget the settings in smarttarget_conf.xml, look at /Configuration/Fredhopper/Webservice/Server.</li>
</ul>
</li>
<li>To see how multiple promotions are returned, set up multiple promotions...</li>
<li>Do read the ASPX source of this demo!</li>
</ul>
</p>
<hr/>
<smarttarget:Query runat="server" view="home" publication="tcm:0-69-1" allowDuplicates="true">
<blockquote>
<b>&lt;smarttarget:query&gt;</b> start of the query<br/>
<smarttarget:Promotions runat="server" Region="Sidebar" MaxItems="10">
<ItemTemplate>
<blockquote>
<b>&lt;smarttarget:promotions&gt;</b> looping through promotions<br/>
<blockquote>
<b>&lt;smarttarget:itemTemplate&gt;</b> item template to apply on each promotion<br/>
<blockquote>
<b>promotion object properties</b>
<ul>
<li>promotion.PromotionId: <%# ((Tridion.SmartTarget.Query.Promotion) Container.DataItem).PromotionId %><br/></li>
<li>promotion.Name: <%# ((Tridion.SmartTarget.Query.Promotion) Container.DataItem).Name %><br/></li>
<li>promotion.Title: <%# ((Tridion.SmartTarget.Query.Promotion) Container.DataItem).Title %><br/></li>
<li>promotion.Region: <%# ((Tridion.SmartTarget.Query.Promotion) Container.DataItem).Region %><br/></li>
<li>promotion.Slogan: <%# ((Tridion.SmartTarget.Query.Promotion) Container.DataItem).Slogan %><br/></li>
</ul>
<blockquote>
<b>&lt;smarttarget:promotionalItems&gt;</b> looping through promotional items<br/>
<smarttarget:PromotionalItems runat="server">
<ItemTemplate>
<blockquote>
<b>&lt;smarttarget:itemTemplate&gt;</b> item template to apply on each promotional item<br/>
<blockquote>
<b>item object properties</b>
<ul>
<li>promotionID: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).PromotionId %></li>
<li>region: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).Region %> </li>
<li>componentUri: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).ComponentUri %></li>
<li>templateURI: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).TemplateUri %></li>
</ul>
<ul>
<li>publication id: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).ComponentUri.PublicationId %></li>
<li>component id: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).ComponentUri.ItemId %></li>
<li>template id: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).TemplateUri.ItemId %></li>
</ul>
<ul>
<li>publicationtitle from item attributes: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("publicationtitle") %></li>
<li>item attributes
<ul>
<li>categories: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("categories") %><br /></li>
<li>componentname: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("componentname") %><br /></li>
<li>componentid: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("componentid") %><br /></li>
<li>
componentpresentation: <br />
<pre><%# HttpUtility.HtmlEncode(((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("componentpresentation") )%></pre>
</li>
<li>publicationid: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("publicationid") %><br /></li>
<li>publicationtitle: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("publicationtitle") %><br /></li>
<li>schemaid: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("schemaid") %><br /></li>
<li>schematitle: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("schematitle") %><br /></li>
<li>secondid: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("secondid") %><br /></li>
<li>templateid: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("templateid") %><br /></li>
<li>templatetitle: <%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).GetAttribute("templatetitle") %><br /></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="http://odata.your-staging-server/odata.svc/ComponentPresentations(PublicationId=<%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).ComponentUri.PublicationId %>,ComponentId=<%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).ComponentUri.ItemId %>,TemplateId=<%# ((Tridion.SmartTarget.Query.Item) Container.DataItem).TemplateUri.ItemId %>)/PresentationContent/value"
target="_new">
Component Presentation on CD webservice
</a>
</li>
</ul>
</blockquote>
</blockquote>
</ItemTemplate>
</smarttarget:PromotionalItems>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</ItemTemplate>
<FallbackContent>
<blockquote>
<b>&lt;smarttarget:promotions&gt;</b> looping through promotions<br/>
<blockquote>
<b>&lt;smarttarget:fallbackContent&gt;</b> fallback content<br/>
This is Fallback content. SmartTaget (Fredhopper query server) did not return any promotions or is not available.<br/>
</blockquote>
</blockquote>
</FallbackContent>
</smarttarget:Promotions>
</blockquote>
</smarttarget:Query>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.