Как мне заставить UGC DCP работать с REL?
Я создаю в основном динамический веб-сайт в.NET и пытаюсь заставить UGC работать вместе с моими презентациями динамических компонентов. Мои DCP публикуются с использованием выходного формата REL (для базы данных брокера) и используются с использованием класса ComponentPresentationAssembler.
DCP содержат как динамическую связь, так и UGC PostRating. Во время выполнения динамическое соединение успешно разрешено, однако код UGC - нет.
Пример содержания DCP в базе данных:
<div>
<h2><tcdl:Link type="Component" origin="tcm:0-0-0" destination="tcm:33-10793" templateURI="tcm:0-0-0" linkAttributes="" textOnFail="true" addAnchor="false" variantId="">Basic Business Checking</tcdl:Link></h2>
<tcdl:PostRating itemURI="tcm:33-10793" postParameter="ratingValuetcm:33-10793">
<tcdl:ItemStats itemURI="tcm:33-10793">
Rating:<tcdl:ContextVariable var="ugcItemStats.averageRating"/> (<tc dl:ContextVariable var="ugcItemStats.numberOfRatings"/> ratings)<br/>
</tcdl:ItemStats>
<form method="post" id="ratingForm">Rate:
<select name="ratingValuetcm:33-10793" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5" selected="true">5</option>
</select>
<input type="submit" value="Rate!"/>
</form>
</tcdl:PostRating>
</div>
Код страницы.NET:
Query myQuery = new Query();
myQuery.Criteria = andCriteria;
string[] componentPresentationURIs = myQuery.ExecuteQuery();
ComponentPresentationAssembler componentPresentationAssembler = new ComponentPresentationAssembler("tcm:33-10796-64");
foreach (string componentPresentationURI in componentPresentationURIs) {
Response.Write(componentPresentationAssembler.GetContent(componentPresentationURI, strComponentTemplateURI));
}
UGC успешно работает при развертывании на странице.
cd_dynamic_conf.xml настроен с помощью пакета тегов ugc_renderer_bundle.xml.
В визуализированном html динамическая ссылка преобразуется в
<a href="/prodigy/business-rewards-checking.aspx" >Business Rewards Checking</a>
Однако код остается как есть.
И идеи будут приветствоваться.
1 ответ
Сначала небольшое замечание: "Теги REL не могут публиковать комментарии / рейтинги" (см. "Запрос на улучшение 76605, зарегистрированный с помощью Tridion"). Это в основном означает, что ваш "tcdl:PostRating" будет просто удален из полученного результата. Что касается "tcdl:ItemStats" и "tcdl:ContextVariable", они должны работать очень хорошо, если у вас есть настройка "ugc_dao_bundle.xml" в вашем "cd_storage_conf.xml". В результате вы получите всю страницу со всеми комментариями, но публикация или редактирование комментариев / оценок не будут работать. Если что-то не так с вашим рендерингом, вы должны увидеть некоторые ошибки в своих логах. Надеюсь это поможет.
Ура, Даниэль.