2012-02-06 3 views
5

У меня есть поле «Общая ссылка» на одной из моих страниц в Sitecore. Это поле в основном определяет ссылку видеофайла, который используется для воспроизведения видео.Проверка типа ссылки в Sitecore

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

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

ответ

19

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

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

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

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

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

+0

Удивительный! Спасибо друг! – YashG99

11

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

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 в зависимости от типа соединения. Удачи вам!

Смежные вопросы