私は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. WebAPIコールからSitecoreメディアアイテムを返す
- 3. Sitecoreは最近更新されたメディアアイテムを使用してコンテンツアイテムのリストを取得します
- 4. カスタムプロパティを持つすべてのSitecoreユーザーを取得する
- 5. メディアアイテムを受け入れ、メディアアイテムを許可しないようにsitecoreのdroptreeフィールドを制限する方法
- 6. SitecoreのDropLinkオプションに一致するすべてのアイテムを取得します。
- 7. Sitecore Glass Mapperすべての兄弟を取得
- 8. (Sitecoreの)アイテムのすべてのフィールドを取得できますか?
- 9. Sitecore Analyticsデータを新しいSitecoreインスタンスに取得する方法
- 10. アセットURLからメディアアイテムを取得する方法
- 11. foreach - umbracoでidでメディアアイテムを取る
- 12. Sitecoreのロールのアクセスルールを取得する
- 13. メディアアイテムのSitecoreの目標はエンゲージメントの価値に影響しません
- 14. Sitecoreの連絡先を取得するSitecore Rest API
- 15. SiteCoreでアイテムXMLを取得
- 16. メディアアイテムを作成するには?アンドロイド
- 17. Sitecoreプレースホルダの数を取得
- 18. Sitecore/GlassMapperページを取得
- 19. SitecoreのURLに一致する商品を取得します
- 20. オーディオのパスを探すメディアアイテム
- 21. Javaで.classのすべてのプロパティを取得するには?
- 22. javascriptですべてのタイムゾーンのリストを取得するには
- 23. sitecoreクエリを使用してアイテムを取得する
- 24. SitecoreのItemプロパティ/フィールドを取得する方法は?
- 25. MimeMessageですべてのmimepartを取得するには?
- 26. var_dumpですべてのelemetsを取得するには?
- 27. asp.net mvcですべてのURLパラメータを取得するには?
- 28. すべてのevent_memberをページングで取得するには?
- 29. powershellですべての証明書を取得するには?
- 30. Qtですべてのタイムゾーンリストを取得するには?
の呼び出しによって返された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 –