私はsitecoreにパイプラインを追加しています。私がしようとしていることは、すべてのメディアアイテムを取得し、すべてのメディア資産をCDNに入れるときにURLを変更することです。問題は簡単です、どのようにすべてのメディアアイテムを入手するのですか?誰も知っている?カスタムアセンブリでsitecoreですべてのメディアアイテムを取得するには?
答えて
はこのような何かを:
Sitecore.Data.Items.Item home = db.GetItem("/sitecore/media library");
using (new Sitecore.SecurityModel.SecurityDisabler())
{
alterItem(home);
}
protected void alterItem(Sitecore.Data.Items.Item root)
{
foreach (Sitecore.Data.Items.Item itm in root.Children)
{
//follow "absolute url" example below and edit each media item as you enumerate
//Use recursion to loop through the entire tree under the root item
alterItem(itm);
}
}
ありがとう!しかし、メディアアイテムのURLを表すそのようなフィールドはなく、メディアアイテムのURLによって使用されるテンプレートはありません。 – user822211
これを確認してください.http://stackoverflow.com/questions/5977809/how-can-i-configure-sitecore-so-that-it-generates-absolute-links-to-media-items/5982547 – foxtrotZulu
メディアライブラリのルートを得るためのより良い方法はSitecore.ItemIDs.MediaLibraryRootです –
あなたはサイトコアのメディアライブラリツリーを歩くと、アイテムのURLを変更することはできません。主な理由は、MediaItem
(またはその場合はItem
)にはURL
のプロパティがありません。アイテムを指すURLは、多くの構成設定(アイテムがあるサイト、リンクプレフィックス、現在の言語、 'ファイル'拡張子など)によって決まります。
アイテムの実際のURLを制御する多くの要素があるので、アイテムのURLを取得するために利用するメソッドがいくつかあります。レンダリング時間です。アイテムへのURLを取得するために使用されなければならないメソッドは次のようになります。
Sitecore.Links.LinkManager.GetItemUrl()
Sitecore.Resources.Media.MediaManager.GetMediaUrl()
あなたはfoxtrotZuluが示唆されて何かを行うことができます。基本的には、CDNの項目へのURLを格納する各MediaItem
に独自のフィールドを追加します。手動で、またはプログラミングで、各メディア項目のカスタムURLフィールドの値を設定する必要があります。次に、レンダリング時間で、MediaManager
の呼び出しではなく、そのフィールド値を使用します。
また、私はあなたがパイプライン内のすべてのメディアアイテムを取得しようとしている理由を理解していないSitecore.Resources.Media.MediaManager.GetMediaUrl()
- 1. Sitecoreは最近更新されたメディアアイテムを使用してコンテンツアイテムのリストを取得します
- 2. (Sitecoreの)アイテムのすべてのフィールドを取得できますか?
- 3. Sitecore Analyticsデータを新しいSitecoreインスタンスに取得する方法
- 4. SiteCoreでアイテムXMLを取得
- 5. アセットURLからメディアアイテムを取得する方法
- 6. foreach - umbracoでidでメディアアイテムを取る
- 7. メディアアイテムのSitecoreの目標はエンゲージメントの価値に影響しません
- 8. Sitecore/GlassMapperページを取得
- 9. SitecoreのURLに一致する商品を取得します
- 10. sitecoreクエリを使用してアイテムを取得する
- 11. Javaで.classのすべてのプロパティを取得するには?
- 12. lucene.netですべてのヒットを取得するには
- 13. MimeMessageですべてのmimepartを取得するには?
- 14. cts:searchですべての結果を取得するには?
- 15. Qtですべてのタイムゾーンリストを取得するには?
- 16. すべてのevent_memberをページングで取得するには?
- 17. var_dumpですべてのelemetsを取得するには?
- 18. オーディオのパスを探すメディアアイテム
- 19. 子供たちをsitecoreで取得する
- 20. すべてのニュースとすべてのコメントを取得する
- 21. 私のアプリケーションのすべてのユーザーを取得するには
- 22. 親コントロールのすべての子を取得するには?
- 23. Symfony2のすべてのポストパラメータを取得するには?
- 24. パッケージ内のすべてのクラス名を取得するには?
- 25. JTree:すべてのアイテムのテキストを取得するには?
- 26. MSSQLデータベースのすべてのテーブルを取得するには?
- 27. オブジェクトのすべてのフィールドを取得するには?
- 28. ラリーAPIのすべてのタグを取得するには
- 29. Gitですべてのプッシュリストを取得
- 30. リモートワークステーションですべてのチェックアウトを取得
の呼び出しによって返されたURLを制御するために、様々な構成設定を活用を見てみたいことがあり?パイプラインプロセッサに、要求されているアイテムのURLを変更させないのはなぜですか? –
あなたのヒントをありがとう、私は本当に持っている必要があります。究極の目標は、イメージベーステンプレートにチェックボックスフィールドを追加することによってメディアアイテムのURLを切り替えることができることです。問題は、メディアアイテムのURLを変更する方法です。 – user822211
私は以前に同様の質問に答えました:http://stackoverflow.com/questions/5977809/how-can-i-configure-sitecore-so-that-it-generates-absolute-links-to-media-items/ 5982547 –