Tridion 是否可以混合使用模块化模板和遗留VBScript CT?

Tridion 是否可以混合使用模块化模板和遗留VBScript CT?,tridion,Tridion,我特别想到的情况是: @@RenderComponentPresentation(Component, "<vbs-legacy-ct-tcm-uri>")@@ 编辑2 多米尼克绝对是赖特:这是一个缺失的依赖 要使此信息普遍有用,请进一步了解: 假设原始CT如下所示(“VBScript[Legacy]”类型: 该CT旨在从PT调用,也基于VBS。该PT在开始时有大量的“#include”语句 现在情况发生了变化:从另一个基于DWT的CT调用同一个CT。显然(感谢你们所有人的宝贵帮助

我特别想到的情况是:

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

多米尼克绝对是赖特:这是一个缺失的依赖

要使此信息普遍有用,请进一步了解:

假设原始CT如下所示(“VBScript[Legacy]”类型:

该CT旨在从PT调用,也基于VBS。该PT在开始时有大量的“#include”语句

现在情况发生了变化:从另一个基于DWT的CT调用同一个CT。显然(感谢你们所有人的宝贵帮助!),依赖项现在不包括在任何地方

使原始CT再次工作的解决方案是显式手动拾取并包括所有必要的VBS TBB,因此原始CT变为:

[%
#include "tcm:<uri-of-vbs-tbb>"
Call RenderComponent(Component)
%]
[%
#包括“tcm”:
调用RenderComponent(组件)
%]

我知道您可以使用VBScript组件演示文稿呈现模块化页面模板,VBScript页面模板也可以呈现模块化组件模板


您的错误可能是由于其他原因造成的?您是否尝试过只使用常规的
@@RenderComponentPresentation()@
调用而不指定哪个模板?

页面模板可以呈现不同风格的复合模板,例如Razor、VBS或XSLT


问题来自模板中包含的TBB。Razor模板通常需要调用仅存在于VBScript中的函数。因此,迁移模板的起点始终是从辅助函数和实用程序库开始。然后将最通用的PT/CT迁移到新格式(Razor、XSLT、DWT等)。这为迁移其余模板提供了良好的基础,因为您有时间迁移到新格式

是-完全可以混合和匹配传统模板和模块化模板。也许很明显,您无法在这两种技术之间混合和匹配
模板构建块


在VBScript中,“错误13类型不匹配”有时被用作密码,真正的意思是“我无法识别某个变量的名称(包括函数和子函数的名称)”。在VBScript模板引擎中,页面模板中的变量可能在组件模板的作用域内;例如,将#include放在PT中以便CT可以使用它们是非常常见的。我的猜测是,您的组件模板正在尝试使用这样一个函数,但没有找到它

我还认为你的错误是由其他原因造成的。对于第一个参数,您是否尝试了“Component.ID”而不是“Component”?@Nickoli也考虑过(并尝试过)这一点,但交易是,即使在最底层的VBS代码中,仍然可以访问Component.ID,所以肯定,该项目被传递到那里还不错。我同意这似乎是对您看到的错误的最合理的解释。据我所知,从复合脚本调用“经典”脚本CP render并没有什么错……您如何处理这个问题?离解决问题更近了吗?+1感谢您重新编辑此问题,以帮助将来的其他人。罗伯特,谢谢您的建议,这是我第n次听说这个神奇的剃须刀,我迫不及待地想尝试它(我错过了上一个项目的好机会:-/)。但是,我只能梦想使用合适的工具来完成这项工作。(在模板代码中看到评论是一件很痛苦的事情:“在90%的网站中使用。”)
[%
Call RenderComponent(Component)
%]
[%
#include "tcm:<uri-of-vbs-tbb>"
Call RenderComponent(Component)
%]