I need to debug the following block of code with the Template builder:
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="Tridion.ContentManager.Publishing" %>
<%@ Assembly Name="Sanofi.Tridion.Templating.SystemConfiguration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=35c557fa23cf3f27"%>
<%@ Import Namespace="Sanofi.Tridion.Templating"%>
string pubUrlName = "PublicationURL";
string pubLangName = "PublicationLanguage";
string pubID = "PublicationID";
string outputName = "PublicationList";
string curretPubIndex = "CurrentPubIndex";
if (engine.RenderMode == RenderMode.Publish)
{
PublicationTarget pubTarget = engine.PublishingContext.PublicationTarget;
IList<Publication> list = new List<Publication>();
IList<TcmUri> pubList = new List<TcmUri>();
list = pubTarget.Publications;
Publication currentPub = engine.GetSession().GetObject(string.IsNullOrEmpty(package.GetValue("Page.Publication.ID")) ? package.GetValue("Component.Publication.ID") : package.GetValue("Page.Publication.ID")) as Publication;
string pubLanguage = "";
string pubURL = "";
int i = 0;
foreach (Publication pub in list)
{
SystemConfigurationEngine sysCfg = new SystemConfigurationEngine(engine, package, log, pub);
sysCfg.rootFolder = "/Building Blocks/System Configuration Entries";
pubLanguage = sysCfg.GetValue("Publication.Language");
if ( sysCfg.GetValue("Publication.Device").ToString().Equals("desktop"))
{
if (pub.Id != currentPub.Id)
{
pubURL = sysCfg.GetValue("Publication.URL");
pubList.Add(pub.Id);
package.PushItem(pubUrlName + i, package.CreateStringItem(ContentType.Text, pubURL));
package.PushItem(pubLangName + i, package.CreateStringItem(ContentType.Text, pubLanguage));
package.PushItem(pubID + i, package.CreateStringItem(ContentType.Text, pub.Id.ToString()));
i++;
}
else
{
pubList.Add(pub.Id);
package.PushItem(pubUrlName + i, package.CreateStringItem(ContentType.Text, ""));
package.PushItem(pubLangName + i, package.CreateStringItem(ContentType.Text, pubLanguage));
package.PushItem(pubID + i, package.CreateStringItem(ContentType.Text, pub.Id.ToString()));
package.PushItem(curretPubIndex, package.CreateStringItem(ContentType.Text, i.ToString()));
i++;
}
}
}
package.PushItem(outputName, package.CreateComponentUriListItem(ContentType.ComponentArray, pubList));
package.PushItem("PublicationCount", package.CreateStringItem(ContentType.Text, i.ToString()));
}
it seems i need a package to run it against but i don't know how i'm supposed to create this package.
Will the line
if (engine.RenderMode == RenderMode.Publish)
be a problem since i'm not in a publish context ?
Thanks in advance for your help.