gpt4 book ai didi

tridion - 在 SDL Tridion 2011 中运行 VBScript 自定义页面

转载 作者:行者123 更新时间:2023-12-04 23:58:23 26 4
gpt4 key购买 nike

我们有许多用 VBScript 编写的用于 SDL Tridion 5.2 的自定义脚本。这些脚本使用 TOM API 对 Tridion 对象执行许多批量操作。

在最近升级到 2011 SP1 之后,我们现在需要更改大量组件演示中使用的组件模板,最好的方法是运行脚本来更新必要的页面和组件演示。

以前,我们可以运行一些类似于以下代码的 VBScript 来进行此更改。 2011 年我们还能运行这些脚本来进行这种改变吗?

是否像在内容管理器服务器 (Windows 2008 R2) 上启用经典 ASP 一样简单?

<%
'##### CREATE TRIDION API OBJECTS #####
Set TDSE = Server.CreateObject("TDS.TDSE")
Call TDSE.Initialize()

'##### CALL FUNCTION - PASS IN STRUCTURE GROUP STARTING POINT #####
Call UpdateComponentTemplates(TDSE.GetObject("tcm:44-39929-4", OpenModeEditWithFallback, "tcm:0-44-1"))

Sub UpdateComponentTemplates(arg_strStructureGroup)
'##### GET ALL ITEMS WITHIN SPECIFIED STRUCTURE GROUP #####
For Each objItem In arg_strStructureGroup.GetItems
'##### IF ITEM IS A STRUCTURE GROUP #####
If TypeName(objItem) = "StructureGroup" Then
'##### CALL THE FUNCTION AGAIN, PASSING IN THE STRUCTURE GROUP #####
Call UpdateComponentTemplates(objItem)
End If
'##### IF ITEM IS A PAGE #####
If TypeName(objItem) = "Page" Then
For Each objComponent In objItem.ComponentPresentations
'##### CHECK EXISTING COMPONENT TEMPLATE & UPDATE WITH THE NEW ONE #####
If objComponent.ComponentTemplate.ID = "tcm:44-493-32" Then
'objComponent.ComponentTemplate = "tcm:44-216181-32"
'objItem.Save(True)
'##### OUTPUT STATUS MESSAGE #####
Response.Write(objItem.Title & " ......................... UPDATED<br />") & vbCrlf
Response.Flush()
End If
Next
End If
Next
End Sub

Response.Write("<p>Job Done!!!</p>") & vbCrlf

'##### CLEAN UP OBJECTS #####
Set TDSE = Nothing
%>

我知道这可能可以使用 Core Service 来完成,但是如果不了解此代码或 .Net,是否仍然可以使用 VBScript 来执行此操作?

最佳答案

是的,这在 2011 年有效,因为仍然支持 TOM COM+ API。我最近在 2011 系统上成功运行了一个非常相似的脚本。如果您要更新大量项目,您可能希望将其移动到 .net 控制台应用程序,因为模板或网页可能会超时。如果您这样做,请确保对所有 TOM 对象使用 marshal.releaseobject。

关于tridion - 在 SDL Tridion 2011 中运行 VBScript 自定义页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841722/

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