private void AddEnclosure( SyndicationItem syndicationItem, Sitecore.Data.Items.Item item, Sitecore.Syndication.FeedRenderingParameters parameters) { Sitecore.Diagnostics.Assert.ArgumentNotNull(syndicationItem, "syndicationItem"); Sitecore.Diagnostics.Assert.ArgumentNotNull(item, "item"); Sitecore.Diagnostics.Assert.ArgumentNotNull(parameters, "parameters"); Sitecore.Data.Fields.LinkField field = item.Fields[parameters.EnclosureField]; if (field != null) { Sitecore.Data.Items.MediaItem targetItem = field.TargetItem; if (targetItem != null) { Sitecore.Resources.Media.MediaUrlOptions options = new Sitecore.Resources.Media.MediaUrlOptions { AbsolutePath = true, UseItemPath = true }; string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(item, options); if (!String.IsNullOrEmpty(mediaUrl)) { mediaUrl = Sitecore.Web.WebUtil.GetFullUrl(mediaUrl); string size = targetItem.Size.ToString(); string mimeType = targetItem.MimeType; syndicationItem.ElementExtensions.Add( String.Format("enclosure url=\"{0}\" length=\"{1}\" type=\"{2}\"", mediaUrl, size, mimeType), String.Empty, String.Empty); } } } }
private static Dictionary <string, string> GetFieldHtmls(Item item, List <string> FieldNames) { Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNullOrEmpty(RenderFieldPipelineName, "renderField"); Dictionary <string, string> argsResult = new Dictionary <string, string>(); foreach (var fieldName in FieldNames) { if (item == null) { return(argsResult); } RenderFieldArgs args = new RenderFieldArgs { Item = item, FieldName = fieldName }; CorePipeline.Run(RenderFieldPipelineName, args); if (!args.Result.IsEmpty) { string contents = args.Result.ToString(); string multilistItems = ""; // Image Field Type - Get only image path if (args.FieldTypeKey == "image") { Sitecore.Data.Fields.ImageField iFld = args.Item.Fields[fieldName]; Sitecore.Resources.Media.MediaUrlOptions opt = new Sitecore.Resources.Media.MediaUrlOptions(); //opt.AlwaysIncludeServerUrl = true; opt.AbsolutePath = true; string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(iFld.MediaItem, opt); contents = mediaUrl; } // Multilist Field Type - Convert Item ID to Item Name if (args.FieldTypeKey == "multilist") { List <string> itemId = args.Result.ToString().Split('|').ToList(); int count = 1; foreach (string i in itemId) { Item theItem = item.Database.GetItem(Sitecore.Data.ID.Parse(i)); if (theItem != null) { multilistItems += theItem.Name; if (count != itemId.Count) { multilistItems += "|"; } } count++; } contents = multilistItems; } argsResult.Add(fieldName, contents); } } return(argsResult); }
protected override void DoRender(HtmlTextWriter output) { Sitecore.Data.Items.Item item = Sitecore.Context.Item; if (item == null) { return; } Sitecore.Data.Fields.ImageField field = item.Fields["Logo"]; if (field == null || field.MediaItem == null) { return; } string icon = Sitecore.StringUtil.EnsurePrefix('/', field.MediaItem.Appearance.Icon); output.WriteLine(String.Format( @"Icon: <img src=""{0}""><br />", icon)); string thumbnail = Sitecore.StringUtil.EnsurePrefix( '/', Sitecore.Resources.Media.MediaManager.GetThumbnailUrl(field.MediaItem)); output.WriteLine(String.Format( @"Thumbnail: <img src=""{0}""><br />", thumbnail)); Sitecore.Resources.Media.MediaUrlOptions options = new Sitecore.Resources.Media.MediaUrlOptions { Database = field.MediaItem.Database, Language = field.MediaItem.Language, Version = field.MediaItem.Version, DisableBrowserCache = true, BackgroundColor = Color.DarkGreen, Height = 100, Width = 100, AllowStretch = true, }; string url = Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(field.MediaItem, options)); output.WriteLine(String.Format( @"Stretch: <img src=""{0}""><br />", url)); }
/// <summary> /// If the Item is a media item, uses the media manager to get the media url /// using MediaUrlOptions AlwaysIncludeServerUrl set to true. /// </summary> /// <param name="item"></param> /// <returns></returns> public static string GetFullyQualifiedMediaUrl(this Item item) { MediaItem mediaItem = null; try { mediaItem = (MediaItem)item; } catch { return(string.Empty); } var options = new Sitecore.Resources.Media.MediaUrlOptions(); options.AlwaysIncludeServerUrl = true; return(Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem, options)); }
// TODO: Add more as required protected override void Render(System.Web.UI.HtmlTextWriter writer) { if (MediaItem != null) { // Inspect MediaItem to get details for image // TODO: Maybe store this in viewstate? // Pass through sc image handler options var mediaUrlOptions = new Sitecore.Resources.Media.MediaUrlOptions(); if (SCWidth.HasValue) { mediaUrlOptions.Width = SCWidth.Value; } if (SCHeight.HasValue) { mediaUrlOptions.Height = SCHeight.Value; } if (SCMaxWidth.HasValue) { mediaUrlOptions.MaxWidth = SCMaxWidth.Value; } if (SCMaxHeight.HasValue) { mediaUrlOptions.MaxHeight = SCMaxHeight.Value; } if (SCBackgroundColor != null) { mediaUrlOptions.BackgroundColor = SCBackgroundColor; } if (SCAllowStretch.HasValue) { mediaUrlOptions.AllowStretch = SCAllowStretch.Value; } // Generate url to image from options this.ImageUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(MediaItem, mediaUrlOptions); // Set alt text this.AlternateText = MediaItem.Alt; base.Render(writer); } }