/// <summary>Writes an image html to the given writer.</summary>
        /// <param name="item">The item containing the data.</param>
        /// <param name="detailName">The name of the property to write.</param>
        /// <param name="writer">The writer to write to.</param>
        public static void WriteImage(ContentItem item, string detailName, string preferredSize, string alt, string cssClass, System.IO.TextWriter writer)
        {
            string imageUrl = item[detailName] as string;

            if (string.IsNullOrEmpty(imageUrl))
            {
                return;
            }

            TagBuilder tb = new TagBuilder("img");
            bool       preferredSizeExists;

            tb.Attributes["src"] = ImagesUtility.GetExistingImagePath(imageUrl, preferredSize, out preferredSizeExists);
            tb.Attributes["alt"] = item.GetDetail(detailName + "_AlternateText", alt);
            cssClass             = item.GetDetail(detailName + "_CssClass", cssClass);
            if (preferredSizeExists)
            {
                if (string.IsNullOrEmpty(cssClass))
                {
                    cssClass = preferredSize;
                }
                else
                {
                    cssClass += " " + preferredSize;
                }
            }

            if (!string.IsNullOrEmpty(cssClass))
            {
                tb.AddCssClass(cssClass);
            }

            writer.Write(tb.ToString(TagRenderMode.SelfClosing));
        }
예제 #2
0
        private void LoadSizes()
        {
            var    imageConfig = Engine.Resolve <EditSection>().Images;
            string baseImagePath, imageSize;

            ImagesUtility.SplitImageAndSize(Selection.SelectedItem.Url, imageConfig.Sizes.GetSizeNames(), out baseImagePath, out imageSize);
            foreach (var size in imageConfig.Sizes.AllElements.Where(s => s.Announced))
            {
                var hl = new HyperLink();
                hl.ID = size.Name + "Size";
                bool exists;
                var  path = ImagesUtility.GetExistingImagePath(Engine.Resolve <IFileSystem>(), baseImagePath, size.Name, out exists);
                if (exists)
                {
                    var file = (SelectedFile.Parent as File) ?? SelectedFile;

                    hl.NavigateUrl = "File.aspx?selected=" + file.GetChild(VirtualPathUtility.GetFileName(path)).Path;
                    hl.Text        = Utility.GetResourceString("ImageSizes", size.Name + ".Text") ?? (string.IsNullOrEmpty(size.Description) ? size.Name : size.Description);
                    hl.Text       += GetSizeText(size.Width, size.Height);
                    hl.CssClass    = "command";
                    if (path == Selection.SelectedItem.Url)
                    {
                        omSizes.Controls.AddAt(0, hl);
                    }
                    else
                    {
                        omSizes.Controls.Add(hl);
                    }
                }
            }
            omSizes.Visible = omSizes.Controls.Count > 1;
        }
예제 #3
0
        public static string WriteImage(string imageUrl, System.IO.TextWriter writer, string preferredSize = null, string cssClass = null, string alt = null)
        {
            TagBuilder tb = new TagBuilder("img");
            bool       preferredSizeExists;

            tb.Attributes["src"] = Url.ToAbsolute(ImagesUtility.GetExistingImagePath(imageUrl, preferredSize, out preferredSizeExists));
            tb.Attributes["alt"] = alt;
            if (preferredSizeExists)
            {
                if (string.IsNullOrEmpty(cssClass))
                {
                    cssClass = preferredSize;
                }
                else
                {
                    cssClass += " " + preferredSize;
                }
            }

            if (!string.IsNullOrEmpty(cssClass))
            {
                tb.AddCssClass(cssClass);
            }

            writer.Write(tb.ToString(TagRenderMode.SelfClosing));
            return(cssClass);
        }
예제 #4
0
        /// <summary>Adds an image control to the container.</summary>
        /// <param name="container">The containing control.</param>
        /// <param name="item">The item containing image informatin.</param>
        /// <param name="detailName">The detail name on the item.</param>
        /// <param name="cssClass">The css class to applky to the image element.</param>
        /// <param name="altText">Alt alternative text to apply to the image element.</param>
        /// <returns>An image control.</returns>
        public static Control AddImage(Control container, ContentItem item, string detailName, string preferredSize, string cssClass, string altText)
        {
            string imageUrl = item[detailName] as string;

            if (!string.IsNullOrEmpty(imageUrl))
            {
                Image image = new Image();
                image.ImageUrl      = ImagesUtility.GetExistingImagePath(imageUrl, preferredSize);
                image.AlternateText = item.GetDetail(detailName + "_AlternateText", altText);
                image.CssClass      = item.GetDetail(detailName + "_CssClass", cssClass);
                container.Controls.Add(image);
                return(image);
            }
            return(null);
        }
예제 #5
0
        public static void WriteImage(string imageUrl, System.IO.TextWriter writer, IEnumerable <string> preferredSizes = null, string cssClass = null, string alt = null)
        {
            TagBuilder tb = new TagBuilder("img");
            bool       preferredSizeExists = false;
            string     preferredSize       = null;

            if (preferredSizes != null)
            {
                foreach (var size in preferredSizes)
                {
                    var sizeUrl = ImagesUtility.GetExistingImagePath(imageUrl, size, out preferredSizeExists);
                    if (!preferredSizeExists)
                    {
                        continue;
                    }

                    preferredSize = size;
                    imageUrl      = sizeUrl;
                    break;
                }
            }

            tb.Attributes["src"] = Url.ToAbsolute(imageUrl);
            tb.Attributes["alt"] = alt;
            if (preferredSizeExists)
            {
                if (string.IsNullOrEmpty(cssClass))
                {
                    cssClass = preferredSize;
                }
                else
                {
                    cssClass += " " + preferredSize;
                }
            }

            if (!string.IsNullOrEmpty(cssClass))
            {
                tb.AddCssClass(cssClass);
            }

            writer.Write(tb.ToString(TagRenderMode.SelfClosing));
        }
예제 #6
0
 public virtual string GetThumbnailImageUrl()
 {
     return(ImagesUtility.GetExistingImagePath(Fs, ImageUrl, "thumb"));
 }
예제 #7
0
 public virtual string GetResizedImageUrl()
 {
     return(ImagesUtility.GetExistingImagePath(Fs, ImageUrl, "wide"));
 }