Как получить медиа-ссылку в канале RSS - PullRequest
1 голос
/ 10 апреля 2019

Я устанавливаю канал для медиа-элементов в sitecore и следовал руководству по установке, и все работает нормально. Однако тег ссылки в ленте генерирует абсолютный путь к элементу мультимедиа в дереве содержимого, что-то вроде этого

enter image description here

Нам нужен URL-адрес изображения на сервере, например http://ecms -site1.intlsos.com / - / media / corporate /..../ инцидент-происх .mp3

Я унаследовал от класса PublicFeed, чтобы добавить дополнительное свойство в канал rss, но мне нужна помощь в изменении поведения свойства ссылки для возврата URL-адреса мультимедиа.

спасибо

1 Ответ

1 голос
/ 14 апреля 2019

Для элементов мультимедиа следует использовать Sitecore MediaManager, а не LinkManager, как для обычных страниц, и указать MediaUrlOptions для управления абсолютными и относительными URL-адресами для ваших мультимедийных ресурсов.Приведенный ниже код определяет расширение для медиа-элемента Sitecore для создания для него абсолютного URL-адреса:

using Sitecore.Resources.Media;

public static string AbsoluteMediaItemUrl(this Sitecore.Data.Items.MediaItem item)
            {
                MediaUrlOptions mediaUrlOptions = new MediaUrlOptions
                {
                    AlwaysIncludeServerUrl = true,
                    AbsolutePath = true
                };
                return MediaManager.GetMediaUrl(item, mediaUrlOptions);
            }

Чтобы переопределить стандартную функциональность RSS-канала в Sitecore, необходимо создать собственный класс, унаследованный от * 1004.* Sitecore.Syndication.PublicFeed и переопределить SyndicationItem RenderItem (Item item) метод.Затем вам нужно сопоставить ваш новый класс с элементом RSS-канала в Sitecore, чтобы указать, на какой пользовательский класс вы хотите ссылаться вместо стандартного PublicFeed.

...