Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tridion 使用2个模板进行动态组件链接_Tridion - Fatal编程技术网

Tridion 使用2个模板进行动态组件链接

Tridion 使用2个模板进行动态组件链接,tridion,Tridion,假设我有一个使用集合模式的组件,该组件与两个相反的组件模板一起使用,例如: 组成部分:产品A 模板一:产品营销 模板二:产品支持 通过动态组件链接,我希望能够使用组件的tcm uri指定内容所在位置的超链接(使用dreamweaver模板,即) 但问题是,如果链接生成到我正在处理的网站的错误部分,即产品营销部分的产品支持链接,反之亦然 我试过设置模板的链接优先级…都设置为高…但是Tridion似乎使用了上一个发布的模板来决定链接应该放在哪里 另外,如果我将其中一个模板设置为“中”,另一个设置为“

假设我有一个使用集合模式的组件,该组件与两个相反的组件模板一起使用,例如:

组成部分:产品A

模板一:产品营销

模板二:产品支持

通过动态组件链接,我希望能够使用组件的tcm uri指定内容所在位置的超链接(使用dreamweaver模板,即

但问题是,如果链接生成到我正在处理的网站的错误部分,即产品营销部分的产品支持链接,反之亦然

我试过设置模板的链接优先级…都设置为高…但是Tridion似乎使用了上一个发布的模板来决定链接应该放在哪里

另外,如果我将其中一个模板设置为“中”,另一个设置为“高”,则只需使用具有最高优先级的模板获取指向内容的链接(即所有指向产品支持的链接,即使是在产品营销部分)


有人知道如何解决这个问题吗?谢谢

您的问题与已发布组件演示文稿的上下文相关。SDL Tridion按如下方式解析目标CP的优先级(仅当存在多个匹配项时才移动到下一步):

  • 查找具有最高优先级的CP(您有2个具有高优先级)
  • 通过查看当前结构组(SG)、子SG、兄弟SG等,找到最接近当前页面的一个(这里似乎也有2个)
  • 最后的回退方案是,它链接到最近发布的一个(这就是您看到的)
  • 这通常是由于您有一个不在页面上的动态组件表示(DCP),或者由于某些原因,链接代码中没有设置页面ID,因此无法计算当前CP的位置,因此必须跳过上面的步骤(2)


    这可能无助于你解决问题,但它确实解释了你所看到的。因此,我可以提供更多帮助,请解释您发布的内容(是DCP吗?),并可能查看发布的代码,检查链接代码中是否添加了页面URI(确保它不是tcm:0-0-0)。

    除了Chris注释,您可以使用tridion:excludetemplateuri属性来精确控制可以链接到哪个组件模板,具体取决于您的市场营销或支持需求

    以载重吨计。。你可以用这样的东西

    <a tridion:href="tcm:8-299" tridion:excludetemplateuri="tcm:8-420-32">linkText</a>
    
    
    

    这是我要找的

    !也谢谢你的解释,Chris,这也有助于评估问题所在,因为我有其他使用产品架构的模板需要调整优先级。小心使用excludetemplateuri属性。在实施Tridion的12年中,我从未需要过它。在我看来,它应该只用于异常管理的极端情况。模板中的硬编码URI在迁移和调试时可能会引入各种迁移问题——就我的2 centsChris而言,我们在一个项目中使用了它们,具有类似用例的独特需求。我们没有硬编码它们,但是我们有一个C#TBB,它具有参数模式和webdav URL,该模式解析为TCM ID并设置一个包变量@Richard,正如Chris提到的,您不应该在DWT中硬编码模板ID。您应该使用Webdav URL,而C#TBB应该将Webdav URL转换为TCMID。事实上,“接近度”算法可能非常适合这里。上有链接的页面是否与需要链接的渲染位于站点的同一部分?I在CreateAndBreak.net上。不过我不知道领带。好消息!