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

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 <img> 要素を構築できます。Sitecore.Resources.Media.MediaManager.GetMediaUrlメソッドを使用して、メディアアイテムのURLを判断できます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのImageフィールドImageFieldの値に基づいてHTML <img> 要素を作成するには、次のようにします。

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フィールドという名前のImageフィールドをクリアするには、次のようにします。

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クラスを使用して、Imageフィールドを更新できます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのImageFieldという名前のImageフィールドを /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();
}
この記事を改善するための提案がある場合は、 お知らせください!