2012-04-02 13 views
4

リンクごとに複数のフィールドを避けながら、繰り返し可能なリンクのリストを含むSDL Tridionスキーマを作成したいと考えています。SDL Tridionスキーマフィールド「リンクのリスト」オプション

私はハイパーリンクを作成するには、以下のオプションを持っているリッチテキストフィールドのハイパーリンク

:*

  • コンポーネント
  • アンカー
  • ます。http://
  • のmailto:
  • その他

コンテンツ作成者がこれらのハイパーリンクのいずれかを作成すると、リンクされた(表示可能な)テキストと、典型的なHTMLハイパーリンクのように機能するタイトル属性とターゲット属性を選択するオプションがあります。

「リッチテキスト」とは、Height of the Text Area =少なくとも2行のテキストフィールドを意味し、Allow Rich Text Formattingが選択されています。

単一のスキーマフィールドのリンク 単一のスキーマフィールドを作成するときに、私はこれらのオプションを参照してください。

  • 外部リンク(著者オプションは、HTTP含まれます://、mailtoの、その他)を
  • マルチメディアを(マルチメディア値を許可することができます)リンク
  • コンポーネントリンク

の現在のアイデア

私は、この「リンクのリスト」のために見つけた最高のアウトオブボックス(OOTB)セットアップ製品のいずれかです:

  1. シングル2ラインRTFそのフィールドにハイパーリンク(任意のタイプの)を作成するように指示する
  2. 各タイプの個別のフィールドと表示名、ターゲット、およびタイトル(フィールドがテンプレートコードを使用して組み立てられている)の追加フィールド、フィールドの1つのみ(コンポーネントリンクまたは外部)

質問

は、スキーマのフォームデザイナで、スキーマのソースを更新することによって、または同じ(RTF)ハイパーリンク]ドロップダウンオプションを提供するためのコードを通じて、しかし、単一のフィールドの方法はあります?私は何かが欠けているかもしれないが、このシナリオがOOTBには対応していないことを認識している。

答えて

5

ここで欠落している質問の1つは、リンクが別の場所で使用されるかどうかを検討することです。その場合、複数のコンポーネントが私の最初の選択になるので、各コンポーネントを何回か再利用することができます。

特定のコンポーネント(再利用可能ではない)でのみ使用するリンクのリストを作成することを許可する場合は、以前の回答に記載されているすべてのオプションがあります。あなたは(私の愚見で)最善のアプローチはここに何のアイデアを与えることを

は考慮すべき事柄は、以下のとおりです。リンクあたり

  1. 個々のコンポーネント:リンクが再利用可能な場合は、このアプローチを使用しています。

  2. (リンク構造を持つ)埋め込まれたスキーマを使用するので、このアプローチは、さまざまなコンポーネントタイプ(スキーマ)

  3. カスタムURL/1行のテキストフィールドで使用することができます:それは、追加の開発努力を必要とし、それは非常にあります内部リンクの作成時にハードリンク参照を保持することはほとんどありません。あなたが知っているように、SDL Tridionは、リンク、トリガー公開などを解決するためにtcm idへの参照を保持しています。

  4. カスタムURL/2行RTF:ジョブは実行されますが、 Ribbon Tool Barの他のRTFオプションは、Schema RTFオプション内にあるので、エディタはリンクを作成できるだけです。また、XSLTフィルタを追加して、エディタがリンクだけではなく何かを入力したかどうかを確認する必要があります。これらのリンクは再利用できません。一般的に

あなたは何かカスタム(GUI拡張+カスタムURL)を実装する場合に使用場所など、(リンクがダウン継承されているときに何が起こるか)青写真のように、心の中ですべてのTridionのCMSの概念を保ちます...

私の推薦は常に分離された成分を使用することであったが、公開するときに、リンクの伝播に注意している...

+0

技術的および機能的な考慮事項の要約。答えは、どれくらいの要件を満たすかによって決まります。 –

+0

リンクごとにコンポーネントを使用するメリットがますます増えています。この設定では、テンプレートのリンク出力( 'RenderComponentPresentation()')を行い、リンクURLのタイプミスを減らしたり、リンクごとにメタデータやその他のフィールドを追加したり、リンクスキーマを単純化したり、リンクする人と_details_各リンクのリンクの伝播のために、私は著者に指示するか、おそらくカスタムリゾルバを使うと思いますか? –

+0

私は自分自身のリンク伝播の質問に答えるよ。リンクをコンポーネントとして使用する場合は、リンクが公開されている場所を実際に公開しない限り、リンク自体を公開しないように著者に指示することをおすすめします。カスタムリゾルバが役立つかもしれませんが、単一のアイテムを公開するための有用な機能も削除される可能性があります。 –

2

このユースケースは、Custom URLフィールドとおそらくGUI拡張を使用して動作する可能性があります。ポップアップ(GUIの拡張機能かもしれない)を開くカスタムURLを持つというのがアイデアです。そのポップアップでは、リンクを選択/構築します(コンポーネント、アンカー、mailtoなどの通常のRTFリンクと同じオプションを使用している可能性があります)。

ポップアップでは、特別な細工がされた文字列が返されます。形式は何でもかまいません。実際のアンカータグでも構いません(ただし、JSonも問題ありません)。例:{href: 'tcm:1-2'、type = 'component'}

あなたのテンプレートは、ダイナミックリンクや静的HTMLアンカーのような意味のあるものを生成するために、この文字列を解釈します。

またカスタムURLポップアップは、そのようなリンクを(その値がそのフィールドで以前に指定されていた場合)「デコード」し、RTFリンクコンストラクタフォームの一部の属性をあらかじめ入力することができます。

+0

私が働いていた特定の組織は、分析やクライアント - のためのいくつかの他のフィールドのためのGUIの拡張子を選択しましたサイドパーソナライゼーション。このようなタグを「デコード」(または少なくともストリッピング)するための機能要件を追加しました。彼らの最終的な選択がリンクのためであったかどうかは不明ですが、彼らはRTFに傾いていました。 –

3

XML名前説明フィールドタイプ

[テキスト]テキストテキスト

[タイトル]タイトルテキスト

[static_url]外部URLのテキスト

[コンポーネント]内部URLコンポーネントリンク

「外部URL」と「内部URL」のフィールドの説明では、エディタがこれらの2つのフィールドのうちの1つだけを入力する必要があります。コンポーネントから、そのIDを使用してDWTのダイナミックリンクを作成できます。このソリューションには開発に手間がかかりません。エディタは直感的に使えるだけのものです。もちろん、これはリンクスキーマ内の複数値の埋め込みスキーマフィールドになります。

+0

コメントを追加する際のポイントは、この単純な設定ではスキーマフィールドの説明が不足していることが私の最大の問題であることに気付きました。 –

4

私はこのケースを顧客から見ました。彼らが開発努力を減らすと考えると、複数の埋め込みフィールドを持つというアイデアは良いです。

あなたはそれを持つことができるように:

[テキスト]リンクテキスト

[コンポーネントのリンク]のようなあなたは、外部リンクのための余分なコンテンツのスキーマを必要とするもの

へのリンク、:

[外部リンク] URL

[テキスト]ターゲット

[必要な任意のオプション]

これは、外部リンクを作成するたびに新しい外部リンクコンポーネントを作成する必要があることを意味します。余分な作業ですが、サイト内での外部URLの使用を簡単に保守することもできます。

最後に、エディタは複数のコンポーネントリンクを追加するだけで、他のコンポーネントの外部リンクはスキーマになります。これは、リンクされたコンポーネントのスキーマをチェックし、それに応じてコードを追加するテンプレートコードになります。

+0

個々のリンクにメタデータを追加する方法を見てみると、実際には外部コンポーネントのアイデアが生まれました。これには、これらのコンポーネントで「使用された場所」(Tridionの検索機能)を許可するという大きな副作用があります。 –

+0

また、RTFからのこれらの「外部リンク」コンポーネントで_all_外部リンクを処理したいのではないかと思います。テンプレートコードはそれらをハイパーリンクにアセンブルする必要がありますが、変換と一括更新のための素晴らしいオプションがあります。 –

+0

_all_外部リンクでアプローチを使用したい場合は、それは良い点です。彼らがプロセスを標準化したいと思うのは理にかなっていますが、実際にはいくつかの開発が必要であり、素晴らしいオプションを失うこともあります。私は、外部リンクを使用する際には厳しいポリシーを持つ顧客だけがこのアプローチに満足していると思います。 –

関連する問題