Is there a way to pass a variable through when calling RenderComponentPresentation? [duplicate]

StackOverflow https://stackoverflow.com/questions/10431725

  •  05-06-2021
  •  | 
  •  

Question

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?

Was it helpful?

Solution

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!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top