2012-03-14 6 views
3

内のフィールドのコンテンツをフィルタリングする方法2011年は、私はSDL Tridionの中でDreamweaverのTBBに取り組んでいますDreamweaverのテンプレートビルディングブロック

は私のコンポーネントは、このコンテンツを持つフィールド「AAA」を持っていると言います。

"hi hello <bbb name='abcd_efgh_ijkl'>MRJJJJ</bbb> how are you" 

は私が

"hi hello MRJJJJ how are you". 

は、だから私は、フィールド内のコンテンツの一部を取り除くしたいと私は出力を生成するようなDWTのTBBを書きたい(ここでは、フィールド名はaaaです)私は表示のためにレンダリングします。

私はこれに新しいですし、ここで立ち往生しました。

+0

あなたの質問を明確にすることができますか?本当にコンポーネントのコンテンツを編集しようとしていますか?または、表示目的でレンダリングするときにコンテンツ/タグの一部を取り除きたいということですか? –

+0

@ChrisSummers私はこの問題を編集しました。 – Patan

+0

最初にTridionを使わないでどうやってやるか考えてみるのは良いことです。答えが出たら、それをTridionに適用します。 Tridionの開発は、いくつかの魔法の芸術ではありません、それは一般的です。ネット開発、Java開発、JavaScript開発、またはXML開発は、システムのどこで作業しているかに依存します。最初からTridionで回答を見つけようとすると、最も明白で実装しやすいソリューションが欠けていることがよくあります。 –

答えて

1

フィールドの値を抽出して、C#フラグメントまたはMicrosoft.NETアセンブリTBBを使用してテンプレートパッケージに配置できます。その後、C#を使用して値を操作し、DWTを使用して変更された値を@@ NameOfModifiedValueInPackage @@を使用して出力できます。ファンクションソースの他の提案または異なるタイプのメディエータは同様に有効です。しかし、ほとんどのプロジェクトでは何らかの.NET TBBが必要になるため、これはあまり追加作業ではありません。

+0

..提案していただきありがとうございます。私はこのように実装することを考えました。 – Patan

+0

..あなたに提案したことをありがとう。私はこのように実装することを考えました。 1. DWT TBBを作成する 2.コンポーネントを実際に変更することなく(ビューを変更するため)、要件に応じてコンテンツを変更するには、.Net TBBを適用します。 3.サイトを適用する必要があります。 4.default Finish actionsを編集します。 ここには2つの疑問があります。 1.私たちがDWT TBBの出力で何らかの操作を行うと、それは主成分に影響します。私はそれが私の構成要素に影響を及ぼさないようにします。 2. .net TBB用にDWT TBBの出力をどのように供給しますか? この度はありがとうございます。 – Patan

+0

DWTテンプレートの出力を操作すると、パッケージ内のアイテムのレンダリングされたコンテンツのみが変更されます。テンプレートは読み込み専用なので、コンポーネントには触れません(SDL Tridion 2011 SP1でCMSのデフォルト動作を意図的に変更しない限り) 。 また、DWTのHTMLが構造化されていない形式であるため、DWT変換が適用される前にコンテンツを取得して操作する方がコンテンツを取得し操作する方が簡単だと思います。 「DWTをポストする」必要がある場合は、.NETアセンブリを使用してパッケージから「出力」という項目をロードするだけです。 –

4

TridionのDWT TBBでは、通常、コンポーネントから値を取得する必要があります。これらの値を処理することは、DWTで行うことではありません。

このような処理が必要な場合は、カスタムIFunctionSourceの実装を見てください。それを使えば、あなたのDWTにこのような何かを書くことができ:

@@StripXhtml("aaa")@@ 

ですから、IFunctionSourceクラスで独自のStripXhtml機能を実装すると思います。

SDL Tridion WorldのヌノのDreamweaver Get Extensionをご覧ください。

実際にHTMLと処理を1つのTBBに統合する予定がある場合は、その組み合わせをよりよくサポートするテンプレート言語の使用を検討してください。 XSLT MediatorおよびRazor Mediatorは、そのようなテンプレートタイプの良い例です。

0

ResolveXHTMLのような感じがします。

コンパウンドテンプレートの最後のTBBとして 'Default Finish Actions' TBBを使用していますか?これには、Tridion RTFフィールドの内容を変換し、名前空間を削除するResolveXHTML関数が含まれています。

0

あなたがしようとしていることを本当に理解しているのだろうかと思います。

ここで使用しているサンプルを見ると、テキストをユーザー名のような動的変数に置き換えようとしているようです。ただし、Dreamweaverテンプレートでこれを行うと、ページがウェブサイトの訪問者に配信された時点ではなく、公開時に実行されるため、サイトのすべての訪問者に同じ値が表示されます。

関連する問題