У нас есть ряд пользовательских скриптов, написанных на VBScript для SDL Tridion 5.2. Эти скрипты используют TOM API для выполнения ряда массовых действий над объектами Tridion.
После недавнего обновления до 2011 SP1 у нас появилось требование изменить шаблон компонента, используемый в большом количестве презентаций компонентов, и лучший способ сделать это — запустить скрипт для обновления необходимых страниц и презентаций компонентов.
Раньше мы могли запустить некоторый код VBScript, подобный приведенному ниже коду, чтобы внести это изменение. Можем ли мы в 2011 году запускать эти сценарии, чтобы внести подобные изменения?
Это так же просто, как включить классический ASP на сервере Content Manager (Windows 2008 R2)?
<%
'##### 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?