2012-10-24 17 views
6

W szczególności, w przypadku mam na myśli to:Czy można mieszać modularne szablony i starsze wersje VBScript CT?

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

Problem mam jest to, że w moim przypadku przerw kod VBS, gdy próbuje uzyskać dostęp do pól składowych, dając „Error 13 Rodzaj niedopasowanie. . ".

(Tak, gdybym miał dać odpowiedź, powiedziałbym: „Częściowo, nie ma praktycznego zastosowania”)

EDIT DWT powyżej jest z innego CT, tak skutecznie, że to rendering linku komponentu, dlatego przeciążenie bez parametrów, zgodnie z sugestią Nuno, nie będzie działać niestety. BTW, następujące linie wewnątrz VBS nie łamią i daje poprawne wartości:

WriteOut Component.ID 
WriteOut Component.Schema.Title 

EDIT 2

Dominic był absolutnie Wright: to brakujące zależności.

Trochę więcej danych, aby te informacje na ogół przydatne:

Załóżmy, przy CT wyglądał następująco ("VBScript [Legacy]" typu)

[% 
Call RenderComponent(Component) 
%] 

ten CT rozumie się wywołane z PT, również oparte na VBS. Ten PT miał na początku dużą porcję instrukcji "#include".

Teraz historia się zmienia: ten sam CT jest wywoływany z innego, opartego na DWT, CT. Oczywiście (dziękuję wszystkim za nieocenioną pomoc!), Zależności są teraz , a nie.

Rozwiązaniem zrobić oryginalną CT działa ponownie jest jawnie ręcznie wybrać i zawierają wszelkie niezbędne VBS TBBS, więc oryginalny CT staje:

[% 
#include "tcm:<uri-of-vbs-tbb>" 
Call RenderComponent(Component) 
%] 
+0

Jak sobie z tym radzisz? Czy bliżej rozwiązania? –

+0

+1 do ponownej edycji pytania, aby pomóc innym w przyszłości. –

Odpowiedz

5

Tak - możliwe jest łączenie i dopasowywanie starszych i modułowych szablonów. Być może oczywiście nie można mieszać i dopasowywać między dwiema technikami: template building blocks.

W języku VBScript "Błąd 13 Typ niezgodności" jest czasem używany jako tajny kod, który naprawdę oznacza "Nie rozpoznaję nazwy jednej z twoich zmiennych (łącznie z nazwami Funkcje i Subs)" W szablonie VBScript silnik, zmienne z szablonu strony mogą znajdować się w zakresie w szablonie komponentu; było bardzo często, na przykład, umieszczać #includes w PT, aby mogły być użyte przez CT. Domyślam się, że twój szablon komponentu próbuje użyć takiej funkcji, a nie jej znaleźć.

+1

Zgodziłbym się, że wydaje się to najbardziej logicznym wytłumaczeniem błędu, który widzisz. Według mojej wiedzy nie ma nic złego w wywoływaniu "klasycznego" renderowania CP skryptu ze złożonego ... –

4

wiem, że można renderować Modular szablon strony z VBScript Prezentacje składników, a także szablon strony VbScript mogą wyświetlać modułowy szablon składników.

Twój błąd jest prawdopodobnie spowodowany przez coś innego? Czy próbowałeś już używać zwykłego połączenia @@RenderComponentPresentation()@@ bez określania, który szablon?

+1

Też myślę, że twój błąd jest spowodowany czymś innym. Dla pierwszego parametru wypróbowałeś "Component.ID" zamiast "Component"? –

+0

@Nickoli Pomyślałem o tym (i wypróbowałem) także, ale umowa była taka, że ​​nawet w najniższym kodzie VBS wciąż można było uzyskać dostęp do Component.ID, więc z pewnością element był tam przekazywany daleko. – esteewhy

2

Szablon strony może renderować szablony złożone o różnych smakach - na przykład Razor, VBS lub XSLT.

Problem pochodzi z jednostek TBB zawartych w szablonach. Często szablony Razor będą musiały wywoływać funkcje, które istnieją tylko w VBScript. Zatem punktem wyjścia przy migracji szablonów jest zawsze uruchamianie funkcji pomocniczych i bibliotek narzędziowych. Następnie przeprowadź migrację najbardziej typowego PT/CT do nowego formatu (Razor, XSLT, DWT itp.). Zapewnia to dobrą podstawę do przeniesienia pozostałych szablonów, gdy masz czas na nowy format.

+0

Robert, dziękuję za sugestię, już n-tego czasu słyszę o tej bajecznej maszynce Razor i nie mogę się doczekać jej wypróbowania (straciłem dobrą okazję na naszym ostatnim projekcie: - /). Ale mogę tylko marzyć o użyciu * odpowiednich * narzędzi do pracy. (Ciekawą rzeczą jest zobaczyć komentarz w kodzie szablonu: "Używany w 90% strony.") – esteewhy

Powiązane problemy