2012-02-06 15 views
5

में एक लिंक के प्रकार की जांच करना मेरे पास साइटकोर में मेरे पृष्ठों में से एक में 'सामान्य लिंक' फ़ील्ड है। यह फ़ील्ड मूल रूप से एक वीडियो फ़ाइल का लिंक निर्दिष्ट करता है जिसका उपयोग वीडियो चलाने के लिए किया जाता है।साइटकोर

अब, मैं क्या करने की कोशिश कर रहा हूँ, जांच यदि इस लिंक की प्रकार, उपयोगकर्ता एक आंतरिक लिंक, मीडिया या एक बाहरी लिंक के रूप में एक लिंक अपलोड की गई है या नहीं। लिंक के प्रकार के आधार पर मुझे इस जानकारी की आवश्यकता है, मुझे तदनुसार कुछ क्रियाएं करने की ज़रूरत है।

साइटकोर में एक लिंक के प्रकार की जांच करने का कोई तरीका है?

उत्तर

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

मुझे राज्य कुछ अतिरिक्त कृपया चलो कर रहे हैं। आपके मामले में आप लिंकटाइप के आधार पर कुछ अतिरिक्त कार्रवाई करना चाहते हैं। साइटकोर दस्तावेज में आप इसके बारे में कुछ और जानकारी पा सकते हैं।

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; 

    } 

इस तरह से आप कुछ विधि कि हमेशा आप सही लिंक प्रकार के आधार पर यूआरएल वापस आ जाएगी प्राप्त कर सकते हैं: इस पर आपकी मदद करने के नीचे कोड देखें। इसके साथ गुड लक!

संबंधित मुद्दे