Есть ли способ передать переменную через вызов RenderComponentPresentation?

Возможный дубликат:
Измененная настройка в шаблоне Dreamweaver в SDL Tridion

Мы используем RenderComponentPresentation (на Tridion 2009) для визуализации внутренних и внешних ссылок, чтобы база кода находилась только в одном шаблоне Dreamweaver. Было бы полезно, если бы мы могли пройти через необязательный класс CSS для использования при визуализации ссылки.

Любые идеи, как это можно сделать?

Ответ 1

В RenderContext можно установить значение, а затем получить его во втором шаблоне Dreamweaver.

Перед вызовом RenderComponentPresentation задайте значение контекста визуализации следующим образом:

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

Вам нужно будет иметь фрагмент С# или TBB, чтобы вывести переменные из контекста визуализации и добавить их в пакет во втором шаблоне Dreamweaver. Примером может служить:

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);
}

Затем вы можете получить доступ к переменным в пакете, используя стандартную нотацию Dreamweaver

@@[email protected]@

Надеюсь, это поможет!