gpt4 book ai didi

tridion - 是否可以混合模块化模板和旧版 VBScript CT?

转载 作者:行者123 更新时间:2023-12-04 13:52:35 24 4
gpt4 key购买 nike

特别是,我想到的情况是:

@@RenderComponentPresentation(Component, "<vbs-legacy-ct-tcm-uri>")@@

我遇到的问题是,在我的情况下,VBS 代码在尝试访问组件字段时会中断,给出“错误 13 类型不匹配 ..”。

(所以,如果我要给出答案,我会说:“部分,没有实际用途”)

编辑
上面的 DWT 来自另一个 CT,因此它实际上是组件链接的渲染,这就是为什么按照 Nuno 的建议的无参数重载不幸无法正常工作的原因。顺便说一句,VBS 中的以下行不会中断并给出正确的值:
WriteOut Component.ID
WriteOut Component.Schema.Title

编辑 2

Dominic 是绝对正确的:这是一个缺失的依赖项。

使此信息普遍有用的更多见解:

假设,原始 CT 看起来像这样(“VBScript [Legacy]”类型):
[%
Call RenderComponent(Component)
%]

该 CT 是从 PT 调用的,也是基于 VBS 的。那个 PT 一开始就有一大块“#include”语句。

现在情况发生了变化:同一个 CT 被另一个基于 DWT 的 CT 调用。显然(感谢大家的宝贵帮助!),现在任何地方都没有包含依赖项。

使原始 CT 再次工作的解决方案是明确手工挑选并包含所有必要的 VBS TBB,因此原始 CT 变为:
[%
#include "tcm:<uri-of-vbs-tbb>"
Call RenderComponent(Component)
%]

最佳答案

是的 - 混合和匹配旧模板和模块化模板是完全可能的。或许很明显,你不能混搭template building blocks两种技术之间。

在 VBScript 中,“错误 13 类型不匹配”有时用作密码,这实际上意味着“我不认识您的变量之一的名称,(包括函数和子的名称)”在 VBScript 模板引擎中,来自页面模板可能在您的组件模板的范围内;例如,将#includes 放在PT 中以便CT 可以使用它们是很常见的。我的猜测是您的组件模板正在尝试使用这样的功能,但没有找到它。

关于tridion - 是否可以混合模块化模板和旧版 VBScript CT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com