Проверка типа ссылки в Sitecore - PullRequest
5 голосов
/ 06 февраля 2012

У меня есть поле 'General Link' на одной из моих страниц в Sitecore.Это поле в основном указывает ссылку на видеофайл, который используется для воспроизведения видео.

Теперь я пытаюсь сделать следующее: проверить , если тип этой ссылки, независимо от того, загрузил ли пользователь ссылку в виде внутренней ссылки, медиа или внешней ссылки .Мне нужна эта информация, поскольку, в зависимости от типа ссылки, мне необходимо выполнить некоторые действия соответственно.

Есть ли способ проверить тип ссылки в Sitecore?

Ответы [ 2 ]

20 голосов
/ 06 февраля 2012

1-й, вам нужно убрать поле с вашего элемента.

Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"];

Затем вы можете проверить различные свойства вашего поля.

bool isInternal = field.IsInternal;
bool isMedia = field.IsMediaLink;
string linkType = field.LinkType;

Различные значения LinkTypeinternal, external, media, anchor, mailto и javascript

11 голосов
/ 07 февраля 2012

Позвольте мне высказать что-то дополнительное, пожалуйста. В вашем случае вы хотите иметь некоторые дополнительные действия, основанные на типе ссылки. В документации сайта вы можете найти больше информации об этом. Чтобы помочь вам в этом, посмотрите код под:

public static string GetUrl(this Sitecore.Data.Fields.LinkField LinkField) {

        string url = "";

        switch (LinkField.LinkType) {
            case "internal":
            case "external":
            case "mailto":
            case "anchor":
            case "javascript":
                url = LinkField.Url;
                break;
            case "media":
                MediaItem media = new MediaItem(LinkField.TargetItem);
                url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(media));
                break;
            case "":
            default:
                break;
        }

        return url;

    }

Таким образом, вы можете запустить метод, который всегда будет возвращать вам правильный URL-адрес в зависимости от типа ссылки. Удачи с этим!

...