Is there a way to pass a variable through when cal

2020-08-14 10:07发布

Possible Duplicate:
Variable setting in Dreamweaver template in SDL Tridion

We use RenderComponentPresentation (on Tridion 2009) to render internal and external links so that the code base is in only one Dreamweaver template. It would be helpful if we could pass through an optional CSS Class to use when rendering the link.

Any ideas how this could be done?

1条回答
家丑人穷心不美
2楼-- · 2020-08-14 10:40

It is possible to set a value in the RenderContext and then retrieve it in the second Dreamweaver template.

Before calling RenderComponentPresentation set a render context value as follows:

@@SetRenderContextVariable("CSSClass","red")@@  

You will need to have a C# Fragment or TBB to get the variables out of the render context and add them to the package in the second Dreamweaver template. An example would be:

var renderContext = engine.PublishingContext.RenderContext;
foreach (string key in renderContext.ContextVariables.Keys)
{
    var value = renderContext.ContextVariables[key] as string;
    var item = package.CreateStringItem(ContentType.Text, value);
    package.PushItem("RenderContextVariable."+key, item);
}

You should then be able to access the variables within the package using the standard Dreamweaver notation

@@RenderContextVariable.CSSClass@@

Hope this helps!

查看更多
登录 后发表回答