問題タブ [tridion-content-delivery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tridion - で名前空間をオーバーライドする最も簡単な方法は何ですか
ASP.NetベースのTridion2011を利用したサイトでは、標準で生成された< tridion:ComponentLink />をいくつかの< custom:ComponentLink/>に置き換える必要があります。
(このカスタムコントロールのセマンティクスが同じであると仮定しましょう。つまり、名前空間部分を置き換えるだけで済みます。)
これを行うための最も簡単で邪魔にならない方法は何でしょうか?
私の推測では、標準のLinkTagHandlerに代わるものを実装する必要があります。それが正しいか?
このソリューションの唯一の[無限小]の欠点は、cd_deployer_confですべてのタグハンドラーを明示的に構成する必要があることです。
編集
名前空間のみをエイリアシングするという非常に具体的なタスクに対するばかげた単純な解決策を見つけました。
幸運なことに、私のすべての<tcdl:../>
タグがマッピングされました<custom:../>
。そうでない場合、この小さなチートは機能しません。
全体として、カスタムTCDLタグハンドラーを作成するというPeterとNunoの提案に賛成です。
(私の怠惰に勝つ必要があります:-)。
編集2
おっと、ちょうど気づいた、ヌーノがまさに上記を示唆していることに気づきました!
tridion - Tridion DynamicContent.Query コンポーネント テンプレートによる検索
特定のコンポーネント テンプレートを使用して、ブローカー データベースからすべてのコンポーネント プレゼンテーションをレンダリングしようとしています。これまでのクエリ コードは次のとおりです。
結果を出し続けていnull
ます。動的コンテンツの公開設定がcd_storage_conf.xml
あり、Broker データベースでいくつかのコンポーネント プレゼンテーションが公開されています。
このドキュメントからの私の理解では、このアプローチを使用して関連するコンポーネント URI を取得できるはずです。
私の質問:
Query
クラスの機能に関する私の理解は正しいですか?- 構成とコードに関して何か見逃しましたか?
- コンポーネント テンプレートによってブローカー コンテンツを取得する他の方法はありますか?
編集:
追加情報: に関してItemTemplateCriteria
は、これが Component Template によるレコードの検索に使用されると想定しただけです。と呼ばれる別の基準クラスがあるため、私は推測しましたPageTemplateCriteria
。この仮定が無効である場合は、修正してください。
編集:
追加情報: ブローカ データベースのCOMPONENTS
、SCHEMA
およびTEMPLATES
テーブルを調べましたが、公開されたコンポーネントが見つかりませんでした。のデフォルト ルールではcd_storage_conf.xml
、公開されたコンテンツはブローカに送信される必要があります。参考までに、私の設定は次のとおりです。
tridion - ページの公開とコンポーネントがさまざまな段階でスタックする
Tridion 5.3 から Tridion 2011 SP1 にアップグレードした後、多数のページとコンポーネントを再度発行しています (既存のコンポーネント テンプレートとページ テンプレートを複合テンプレートに変換したためです。発行中に、いくつかのページとコンポーネントが「転送準備完了」または「転送の準備ができました」の下でキューにスタックします)。 「トランスポート中」または「展開を待機中」の状態で、最終的にさまざまなエラーで何度も失敗する
1) 転送に失敗しました: HTTPS を使用して tcm_0-277383-66560.Content.zip を転送できませんでした 2) 宛先の通知のポーリング: iH1DJ7u5t1piMKRZi9OS0Q== トランザクションのポーリング試行回数を超えました: tcm:0-277361-66560
これを解決するための考えがあれば、パブリッシュとレンダリング用のスレッドが 1 つあります。データベースは SQL Server で、アップロードには HTTPUpload.aspx を使用します。
CD_Transport.log
この一連のポーリングの後、関連する全体がトランザクション 277451 のために存在します。
iis-7.5 - Windows 2008 R2 64ビットマシン(Tridion 5.3)でのComponentPresentationAssemblerのエラー
Tridion 5.3を使用しており、コンテンツ配信サーバーを32ビットのWindows2003からWindows2008R264ビットに移動しています。
コンテンツ配信と公開を再インストールしましたが、ブラウザでサイトを閲覧しているときに次のエラーが発生します。
CLSID {8602F9B1-4545-4B0E-BA98-CD927A34DAA9}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80070005。説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。
例外の詳細:System.UnauthorizedAccessException:CLSID {8602F9B1-4545-4B0E-BA98-CD927A34DAA9}を持つコンポーネントのCOMクラスファクトリの取得が、次のエラーのために失敗しました:80070005。
ASP.NETは、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権をASP.NET要求IDに付与することを検討してください。ASP.NETには、アプリケーションが偽装していない場合に使用される基本プロセスID(通常、IIS5の{MACHINE}\ ASPNETまたはIIS6のネットワークサービス)があります。アプリケーションがを介して偽装している場合、IDは匿名ユーザー(通常はIUSR_MACHINENAME)または認証された要求ユーザーになります。
ASP.NETにファイルへのアクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ]を選択して、[セキュリティ]タブを選択します。「追加」をクリックして、適切なユーザーまたはグループを追加します。ASP.NETアカウントを強調表示し、目的のアクセスのチェックボックスをオンにします。
ソースエラー:
ネットワークサービス、IUSRユーザーのWebサイトフォルダへのアクセスを許可しましたが、運がありませんでした。
新しい環境にIIS7.5があります。
誰かがこのエラーの原因を知っていますか?
tridion - SDL Tridion でレンダリングされたコンテンツを取得できないというエラー
SDL Tridion で「レンダリングされたコンテンツを取得できません」というエラーが発生するシナリオを知りたいです。テンプレートに VBScript を使用すると、イベント ログに以下に示すシナリオがいくつか記録されます。しかし、私はそれの頭も尻尾も作ることができません。
シナリオ 1: ページのレンダリングされたコンテンツを取得できません (tcm:48-215280-64)。
シナリオ 2:
シナリオ 3:
シナリオ 4:
シナリオ 5:
シナリオ 6:
問題がどこにある可能性があるかについて手掛かりを教えていただけると助かります。よろしくお願いします!
tridion-2011 - 負荷分散されたシナリオでブローカー データベースを使用する Tridion デプロイヤーの構成
現在、アプリケーションを Tridion 2011 にアップグレードしています。
負荷分散された 2 つの Web サーバーと、ブローカー データベースをホストする 1 つのデータベース サーバーがあります。すべてのコンテンツはブローカー データベースに保存され、すべてのページは Web サーバーにローカルにデプロイされます (Web サーバーには Tridion デプロイヤーがインストールされます)。
ブローカーはコンテンツとメタデータを共有データベースに書き込むため、両方の Web サーバーにデプロイするとエラーが発生します。どちらもコンテンツを保存しようとするからです。私が知っているこれを解決する方法がいくつかあります..
- Broker DB にコンテンツを書き込む 1 つの Web サーバーにデプロイし、ftp 同期を使用してページとディレクトリを 2 番目の Web サーバーにコピーします。
- 1 つの Web サーバーにデプロイし、ブローカーにファイルを共有ネットワーク ディスクに書き込んでもらい、ファイルをローカルに保存する代わりに、両方の Web サーバーが共有ネットワーク ディスクを参照するようにします。
- 両方の Web サーバーにデプロイし、それらを別のデータベースで動作させます。
Tridion 2011 には、両方の Web サーバーに公開するシナリオを有効にするためのより高度なブローカー機能があるかどうか疑問に思っていましたが、実際には Web サーバーの 1 つだけがコンテンツをデータベースに書き込みます (ただし、両方とも読み取ります)。そのため、代わりに 1 つのブローカー データベースを使用できます。 2の。
これがもう少し明確であることを願っています。
tridion - tcdl、Tridion タグ、または RenderComponentPresentation を使用する必要がありますか?
Tridion で「グローバル」ロゴを管理する
たとえば、SDL Tridion を使用して Web サイト全体のロゴとそのテキスト要素を管理するには、(動的) コンポーネント テンプレートによってレンダリングされ、ページ テンプレートによって配置されるコンポーネント内に配置する必要があります。私の要件は次のとおりです。
- コンポーネントとしてのロゴ-- マルチメディア (mm) コンポーネントとしての画像と、オプションのコンテナ コンポーネント内のリンク、alt (つまり、「ホーム」)、およびその他のテキスト。
- ダイナミック コンポーネント プレゼンテーション (DCP) -- ロゴのマークアップ プレゼンテーションを管理し、すべてのページを公開することなく変更を公開する機能
- 共有可能 --下位の出版物で、テンプレートではなくコンポーネントでマルチメディアとテキストをローカライズする機能
作成者は、すべてのページにコンポーネント プレゼンテーション (CP) としてロゴを配置する必要はありませんが、ホームページだけにロゴ CP を配置することで動的リンクを提供できます。
RenderComponentPresentation()
、TCDL
、またはTridion
「非 CP」のタグ
この CP を使用しないアプローチでは、RenderComponentPresentation() またはTCDL タグが適切な「不可知論的」アプローチになると思います。どちらが優先されますか?
たとえば、私のテンプレートは次のように出力します。
これらは、ファイル システム上で次のように変換されます。
それぞれが配信側をレンダリングするため、ユーザーはブラウザーで正しい CP を確認できます。
質問:
どのアプローチでも、PT から参照される DCP が、プレゼンテーション側で取得される不可知論的な形式で取得され、サイト全体の公開が回避されます。実際にはページ上にないため、動的 CT (この場合は HTML フラグメント) を使用してロゴを公開する必要があります。何か不足していますか?
RenderComponentPresentation() は、TCDL または特定のプレゼンテーション側の構文よりも優先されますか?
<tridion:ComponentPresentation runat="server">
代わりに実際に欲しい理由はありますか?
編集:Type="Dynamic"
属性と値がありませんでした。また、RenderComponentPresentation が正しい CP 参照を作成していないと一瞬考えました。
tridion - 成功フォルダー内のパッケージを転送します
設定したcd_deployer_conf
ファイルではCleanup="false
、発行後にトランスポート パッケージが削除されないようにしていますが、次のような単一の発行アクションに対して 3 つの異なるパッケージが表示されます。
tcm_0-264891-66560.COMMIT
tcm_0-264891-66560.Content
tcm_0-264891-66560.PREPARE
これは正常な動作ですか?または、1 つの (.content) パッケージのみが作成されるように、何らかの構成を行うことができますか?
tridion - Tridion Experience Manager (XPM) の実装
Tridion XPM の実装に関するさまざまなアーティファクトを理解しようとしています。残念ながら、私の質問に対する回答が記載されている記事は見つかりませんでした。
たとえば、コンテンツ配信サーバー (WebSphere 上) は、コンテンツ配信 (公開を処理する) 用、Web サービス (oData 実装) 用、XPM (セッション プレビュー付き) 用、および実際のプレビュー アプリケーション用の 4 つの異なるアプリケーションを持つことができます。これらのアプリケーションの 1 つ以上を 1 つにマージして、単純な実装 (1 つまたは 2 つの消費 Web サイト) を実現できると想定しています。
私の質問は次のとおりです。
- 作成するアプリケーション (WAR) の数をどのように簡素化できますか? 私は常に、プレビュー アプリケーションを Tridion のフレームワークから分離しておくことを好みます。Content Delivery セッション プレビュー Web サービスをスタンドアロンの Java/JSP Web アプリケーションとして使用する利点と、既存のアプリケーションに追加する利点は何ですか?
- Web サービス (oData) を XPM またはコンポーネント リンクなどの他の一般的な基本機能に関連付ける/統合するにはどうすればよいですか?
たとえば、oData を有効にせずにページを公開すると、tridion:ComponentLink
タグが分割されますが、有効にするとtcdl:Link
タグが分割されます。これらのタグを読み取るためのカスタム クラスを考え出す必要がありますか? 最終的には、プレビュー アプリケーションに Tridion フレームワークを追加する必要があります。(アプリケーションの依存関係をクリーンにするために、プレビューに Tridion フレームワークを含めなかったと仮定します)
詳細については、Tridion のライブ サイトを参照しましたが、質問に対する有用な情報はあまり見つかりませんでした。