2011年Tridion动态菜单中的问题
我们有一个应用程序,它通过发布动态组件演示文稿动态生成菜单。一个基于结构组的组件模板会写出一个menu.xml,并且每当发布结构组时,该组件模板会通过事件系统触发以发布 在从Tridion 2009升级到Tridion 2011之前,此设置一直运行良好。但自升级以来,菜单不会动态发布,每次结构组发生更改时,都需要重新发布菜单组件模板。我们检查了活动系统,那里一切正常。此外,重新发布菜单组件模板会在其他一些页面菜单中引发问题 在进行一些调试时(我们让组件模板随时写出它正在处理的页面URI),我们发现正在写出的页面URI是错误的 以下是采取的步骤和得出的结论:2011年Tridion动态菜单中的问题,tridion,tridion-2011,tridion-content-delivery,tridion2009,Tridion,Tridion 2011,Tridion Content Delivery,Tridion2009,我们有一个应用程序,它通过发布动态组件演示文稿动态生成菜单。一个基于结构组的组件模板会写出一个menu.xml,并且每当发布结构组时,该组件模板会通过事件系统触发以发布 在从Tridion 2009升级到Tridion 2011之前,此设置一直运行良好。但自升级以来,菜单不会动态发布,每次结构组发生更改时,都需要重新发布菜单组件模板。我们检查了活动系统,那里一切正常。此外,重新发布菜单组件模板会在其他一些页面菜单中引发问题 在进行一些调试时(我们让组件模板随时写出它正在处理的页面URI),我们发
- 已检查所有错误页面;DCP标记在JSP代码中设置了正确的属性
- 向Tridion标记库添加了其他跟踪语句,这证实了以下几点:
- 已从文件系统中正确检索XSLT
- 已从缓存中正确检索缓存菜单
- XSLT使用提供的变量进行了正确转换
- 通过将XSLT属性写入HTML,我们可以看到XSLT处理器被提供了错误的参数
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-103196" templateURI="tcm:57-23654-32"/><!-- privat-->
<div id="nav"><div class="wrapper">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23638" templateURI="tcm:57-23656-32" />
</div></div>
<div id="page" class="clear ">
<div id="content" class="clear">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23639" templateURI="tcm:57-23656-32" />
<div id="middle" class="rightcolumn">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23636" templateURI="tcm:57-23656-32" />
然而,当我们查看网页的源代码时,我们发现页面URI(我们将页面URI写到html页面)混乱不堪,如下所示:
为了
这会生成面包屑,我们会得到一个不同的页面URI,而不是正确的页面URI。一些与发布相关的旧版(VB)事件在Tridion 2011中不起作用。这里有一个遗留事件适配器:。我有点不明白问题到底发生在哪里,是在CMS服务器上发布时,还是在您所说的演示服务器上请求时?@Bart:问题是,当我们更改并发布结构组时,应自动发布的菜单组件模板未发布。手动重新发布解决了现有菜单问题,但有时会在其他页面中触发新错误。此外,事件系统代码也很好。我们已经检查过了,问题不在触发器中。我觉得XSLT处理器在动态组件表示发布过程中被tridion-dynamic-6.1.0.348.jar错误地输入了页面ID,因此菜单混淆了。@Keirthana,您对此有很多自定义逻辑,在没有看到代码的情况下,我们只能假设正在发生什么。请分享:1)相关事件系统代码,2)ct代码,3)XSLT菜单组件模板使用CM端关系,这可能与实际发布的内容不匹配。错误有可能来自未发布的页面吗?并发性问题并不存在于DCP本身——它只是存储中的一组内容,而是存在于模板(C#TOM.NET)代码中。我正试图按照Nick的要求在实时环境中访问代码。一旦我得到它,我就会更新。@Qurjin:谢谢,但是我们应用程序的现有事件系统代码似乎正在工作,因为动态组件演示文稿中的页面URI正在写入。那么,问题是否存在于事件触发的其他地方,如我的解释所示?你是说此DCP的渲染成功,但在部署过程中出现了故障?@Quirjin:是的。我们修改了DCP以写出页面URI,当我们查看页面的源代码时,虽然写入了页面URI,但它们是不正确的。因此,我怀疑XSLT转换是否正在进行,但参数是否正确?这可能吗?我们已经提出了SDL对此问题的支持票,甚至SDL也无法解释为什么会发生这种情况。我们的所有代码和配置详细信息已由SDL确认为正确。一旦这个问题得到解决,我将更新答案。谢谢大家的帮助。
<div id="middle" class="rightcolumn">