예제 #1
0
        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);
                    }
                }
            }
        }
예제 #2
0
        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));
        }
예제 #5
0
        // 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);
            }
        }