画像フィールドへのアクセス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore.Data.Fields.ImageFieldクラスを使ってImage型のデータテンプレートフィールドにアクセスできます。Sitecore.Data.Fields.ImageField.MediaItemプロパティを使って、フィールドで選択されたメディアアイテムをSitecore.Data.Items.Itemとしてアクセスできます。フィールドに画像が指定されていなければ、Sitecore.Data.Fields.ImageField.MediaItemプロパティはNullです。
Sitecore.Resources.ImageBuilderクラスを使ってHTML 要素を作成できます。Sitecore.Resources.Media.MediaManager.GetMediaUrlメソッドを使ってメディアアイテムのURLを判定できます。例えば、Masterデータベースの*/Sitecore/Content/Home*アイテムにあるImageフィールドの値ImageFieldに基づいてHTML 要素を構築する場合:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Fields.ImageField imageField = home.Fields"imagefield";
if (imageField!=null && imageField.MediaItem!=null) { Sitecore.Data.Items.MediaItem image = new Sitecore.Data.Items.MediaItem(imageField.MediaItem);
string src = Sitecore.StringUtil.EnsurePrefix('/',
Sitecore.Resources.Media.MediaManager.GetMediaUrl(image));
string imgTag = String.Format(@"<img src=""{0}"" alt=""{1}"" />", src, image.Alt); }
!重要ビジネスユーザーが提供した画像やその他のメディアにはSitecoreメディアライブラリをご利用ください。開発者が管理する画像にはファイルシステムとソースコード管理システムをご利用ください。
画像フィールドの内容を消去するにはSitecore.Data.Fields.ImageField.Clearメソッドを使うことができます。例えば、Masterデータベースの*/Sitecore/Content/Home*項目の画像フィールドをImageFieldフィールドに消去するには:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Fields.ImageField imageField = home.Fields"imagefield";
home.Editing.BeginEdit();
imageField.Clear();
home.Editing.EndEdit();
Sitecore.Data.Fields.ImageFieldクラスを使ってイメージフィールドを更新できます。例えば、マスターデータベースの*/Sitecore/Content/Homeアイテムにある画像フィールドImageFieldを/Sitecore/Media Library/Images/Sample*画像に更新するには:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Items.Item sampleItem =
master.GetItem("/sitecore/media library/images/sample");
Sitecore.Data.Items.MediaItem sampleMedia =
new Sitecore.Data.Items.MediaItem(sampleItem);
Sitecore.Data.Fields.ImageField imageField = home.Fields"imagefield";
if (imageField.MediaID != sampleMedia.ID) {
home.Editing.BeginEdit(); imageField.Clear(); imageField.MediaID = sampleMedia.ID;
if (!String.IsNullOrEmpty(sampleMedia.Alt)) { imageField.Alt = sampleMedia.Alt; } else { imageField.Alt = sampleMedia.DisplayName; }
home.Editing.EndEdit(); }