複合テンプレート内で文字列アイテムを使用してDreamweaverテンプレートのように実行できるかどうかは誰にも分かりませんか?それと同じ方法を他のメディエーター(かみそりのようなもの)に適用するかどうか?パッケージ内のアイテムをDreamweaverテンプレートとして実行する
おかげ マーク
複合テンプレート内で文字列アイテムを使用してDreamweaverテンプレートのように実行できるかどうかは誰にも分かりませんか?それと同じ方法を他のメディエーター(かみそりのようなもの)に適用するかどうか?パッケージ内のアイテムをDreamweaverテンプレートとして実行する
おかげ マーク
Engine
がTemplate
sはTridionの項目に基づいてされることを想定しているので、私は、それがPackage
内だけで任意の項目を行うことはできません怖いです。
テンプレートアイテムがTridionアイテムに基づいての場合は、おそらくEngine.GetMediator
メソッドからかなり離れている可能性があります。そうでない場合は、有効なTemplate
オブジェクトに変換する方法を見つける必要があります。
Template template = ...
IMediator mediator = engine.GetMediator(template);
mediator.Transform(engine, template, package);
私はパッケージにTridionのベースの項目からComponent
オブジェクトを作成する必要がある場合、私は、通常、このような何か:
Component component = new Component(item.GetAsXmlDocument().DocumentElement,
engine.GetSession);
を私が試したが、それを期待していませんTemplate
についても同じことをすることができます - まず、テンプレートを表すパッケージから有効なItemで始まることを前提にします。おそらく、既存のItemからXMLをクローンしたり、他の方法でそれを偽造することができます。
これを動作させると、登録されているすべてのテンプレートタイプで機能します。 Engine
は、Tridionに付随する種類の特別な治療法を提供していません。
フランクのポインタに感謝します。それを調べます。 Yours –
今日、「engine.GetMediator」は公開されていないことがわかりました。私はTBBに 'DreamweaverMediator'をインスタンス化し、あらかじめ構築された' TemplateBuildingBlock'オブジェクトを渡すだけでした。より多くの人が役に立つと思えば、上記のコードを更新します。 –
これは可能ではないと思われます。
Package.EvaluateExpression
が有用かもしれないが、名前が示唆するように、それが唯一の表現ではなく、組み込み式(すなわち、TEL)とコードの大断片にうまくいく
Engine.GetMediator
はTemplate
を期待し、それに対して適切なMediator
を返します。あなたの問題は、インターフェイスで、Template
、およびPackage
が必要なTransform
メソッドしか定義されていないことです。
私はこれらの周りにエレガントな方法を考えることはできません。自分のメディエーターを書くかもしれませんが、それはまだ文字列ではなく、パッケージを期待するでしょうから、最初に別のTBBから文字列ベースのItemを格納しなければなりません。
私のアドバイス:あなたが描画ボードに戻って、あなたの問題の代替ソリューションを見つける必要があるように思えます。
Markは、既存のITemplateまたはMediatorの中から「DWTとしての文字列」を呼び出すことを想定していました。これは、パッケージ内の項目であることを示しているからです。そうであれば、既存のEngineオブジェクトとPackageオブジェクトを単にMediator.Transformメソッドに渡すことができます。私が見ることができる主な問題は、その文字列ItemをTemplateインスタンスに変換することです。しかしそれは良い点なので、私は精巧に答えを更新します。 –
私は新しいComponentTemplateまたはPageTemplateオブジェクトを作成し、テンプレートの有効なXML表現を渡すことは可能だと思います。それでもあなたはどこにでもいらないでしょう - 私はあなたの文字列アイテムから新しいTBBを作成し、それを新しいテンプレートのXMLに追加します。 TBBが救われる必要があると私は期待しています。 –
パッケージクラスには、調べる価値があるかもしれない 'package.EvaluateExpression(文字列式)'メソッドがあります。 –