public static HtmlString ResponsiveImage(this SitecoreHelper sitecoreHelper, string fieldName, Item item = null, object parameters = null, ResponsiveSizes responsiveSizes = null) { if (item == null) { item = sitecoreHelper.CurrentItem; } if (responsiveSizes == null || Sitecore.Context.PageMode.IsPageEditorEditing) { return sitecoreHelper.Field(fieldName, item, parameters); } var baseMediaUrlOptions = MediaUrlOptionsHelper.ParseMediaUrlOptions(parameters); var mediaItem = GetMediaItem(fieldName, item); var src = GetUrl(mediaItem, baseMediaUrlOptions); if (responsiveSizes.Default != null) { src = GetUrl(mediaItem, responsiveSizes.Default.GetMediaUrlOptions(baseMediaUrlOptions)); } var properties = MediaUrlOptionsHelper.ParseUnusedParameters(parameters).Aggregate(string.Empty, (current, s) => current + string.Format("{0}=\"{1}\" ", s.Key, s.Value)); var html = new StringBuilder("<img " + properties); html.AppendFormat(" src=\"{0}\"", src); html.AppendFormat(" alt=\"{0}\"", mediaItem.Alt); if (responsiveSizes.Mobile != null) { html.AppendFormat(" data-responsimg-mobile=\"{0}\"", GetUrlsString(mediaItem, responsiveSizes.Mobile, baseMediaUrlOptions)); } if (responsiveSizes.Tablet != null) { html.AppendFormat(" data-responsimg-tablet=\"{0}\"", GetUrlsString(mediaItem, responsiveSizes.Tablet, baseMediaUrlOptions)); } if (responsiveSizes.Desktop != null) { html.AppendFormat(" data-responsimg-desktop=\"{0}\"", GetUrlsString(mediaItem, responsiveSizes.Desktop, baseMediaUrlOptions)); } html.Append(" />"); return new HtmlString(html.ToString()); }
public static HtmlString ResponsiveImage(this SitecoreHelper sitecoreHelper, string fieldName, object parameters = null, ResponsiveSizes responsiveSizes = null) { return ResponsiveImage(sitecoreHelper, fieldName, (Item)null, parameters, responsiveSizes); }