ファイル・フィールドへのアクセス

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

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore.Data.Fields.FileFieldクラスを使用して、File型のデータ テンプレート フィールドにアクセスできます。Sitecore.Data.Fields.FileField.MediaItemプロパティを使用して、フィールドで選択したメディア項目にアクセスできます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのFileフィールドFileFieldによって参照されるメディアアイテムにアクセスするには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.FileField fileField = home.Fields["filefield"];

Sitecore.Data.Items.Item file = fileField.MediaItem;

if (fileField==null) {
    // File field not found
}

else if (file==null) {
    // No file selected
}
else {
    Sitecore.Data.Items.MediaItem media = new Sitecore.Data.Items.MediaItem(file);
    // Process media item
}

Fileフィールドの値は、Sitecore.Data.Fields.FileField.MediaID属性とSitecore.Data.Fields.FileField.Src属性を更新することで更新できます。たとえば、Masterデータベースの /Sitecore/Content/HomeアイテムのFileフィールドFileField/Sitecore/Media Library/Files/Sample メディアアイテムが指定されるようにするには、次のようにします。

Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");

Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");

Sitecore.Data.Fields.FileField fileField = home.Fields["filefield"];

Sitecore.Data.Items.Item sample = master.GetItem("/sitecore/media library/files/sample");

if (fileField == null ){
    // File field does not exist
}

else if (sample == null) {
    // File does not exist
}

else if (fileField.MediaID != sample.ID) {

    home.Editing.BeginEdit();

    fileField.MediaID = sample.ID;
    fileField.Src = Sitecore.Resources.Media.MediaManager.GetMediaUrl(sample);

    home.Editing.EndEdit();

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