Sitecore предоставляет ссылки, позволяющие пользователям просматривать / загружать элементы мультимедиа - PullRequest
2 голосов
/ 18 апреля 2011

Как предоставить ссылки на странице на документы в библиотеке мультимедиа Sitecore?

В моем шаблоне (ах) у меня есть Treelist, который позволяет пользователям выбирать количество документов для данного объекта страницы. В моем коде подслоя я перебираю элементы в поле Treelist, чтобы получить их идентификаторы, затем использую Sitecore.Links.LinkManager.GetItemUrl(), чтобы получить URL-адрес элементов. В данный момент я просто отображаю ссылки, используя гиперссылку, но, нажимая на ссылки, я получаю сообщение об ошибке, в котором говорится, что макет не найден.

Нужно ли создавать макет, который является обработчиком ashx для обработки загрузки потока контента элемента мультимедиа, или есть что-то встроенное, что может сделать это?

Ответы [ 4 ]

6 голосов
/ 18 апреля 2011

Для создания ссылок на элементы в библиотеке мультимедиа следует использовать MediaManagerнапример:

string url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)
1 голос
/ 28 ноября 2012

Ответить на mdresser и дополнить комментарий Younes; чтобы убедиться, что префикс '/' с использованием StringUtil выглядит следующим образом:

var thumbnailUrl = Sitecore.StringUtil.EnsurePrefix('/',
                        Sitecore.Resources.Media.MediaManager.GetThumbnailUrl(_thumbnail));
1 голос
/ 18 апреля 2011

Попробуйте использовать Sitecore.Resource.Media.MediaProvider.GetMediaUrl().

Или, для каждого элемента, приведенного к MediaItem.
Папка мультимедиа должна быть: / ~ / media /
MediaPath - это свойство.
Расширение

Также обратите внимание на использование MediaUrlOptions.

0 голосов
/ 08 мая 2014

Вы можете иметь TreeList документов, которые имеют тип «Файл», и в вашем коде вы можете добавить цикл для получения URL этого элемента документа (который имеет тип файла), а затем вы можете получить медиа-URLэтот элемент файла и назначьте его гиперссылке.

Вот фрагмент кода:

List<Item> documentList = your list of selected documents from sitecore 

foreach(Item item in documentList)
{
    FieldField file = item.Fields["FileField Name"];
    if(file != null)
    {
        if(file.MediaItem != null)
         {
             hyperlink.NavigateUrl =      Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(file.MediaItem));
         }
     }
 }
...