1. アクセスフィールド値

画像フィールドへのアクセス

Version:
日本語翻訳に関する免責事項

このページの翻訳は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(); }

この記事を改善するための提案がある場合は、 お知らせください!