public string Parse(string pattern) { if (string.IsNullOrEmpty(pattern)) { return(""); } StringBuilder sb = new StringBuilder(pattern); if (WindowText != null) { string windowText = WindowText.Replace(' ', '_'); if (MaxTitleLength > 0 && windowText.Length > MaxTitleLength) { windowText = windowText.Remove(MaxTitleLength); } sb.Replace(CodeMenuEntryFilename.t.ToPrefixString(), windowText); } if (ProcessName != null) { sb.Replace(CodeMenuEntryFilename.pn.ToPrefixString(), ProcessName); } string width = "", height = ""; if (ImageWidth > 0) { width = ImageWidth.ToString(); } if (ImageHeight > 0) { height = ImageHeight.ToString(); } sb.Replace(CodeMenuEntryFilename.width.ToPrefixString(), width); sb.Replace(CodeMenuEntryFilename.height.ToPrefixString(), height); DateTime dt = DateTime.Now; if (CustomTimeZone != null) { dt = TimeZoneInfo.ConvertTime(dt, CustomTimeZone); } sb.Replace(CodeMenuEntryFilename.mon2.ToPrefixString(), CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(dt.Month)) .Replace(CodeMenuEntryFilename.mon.ToPrefixString(), CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dt.Month)) .Replace(CodeMenuEntryFilename.yy.ToPrefixString(), dt.ToString("yy")) .Replace(CodeMenuEntryFilename.y.ToPrefixString(), dt.Year.ToString()) .Replace(CodeMenuEntryFilename.mo.ToPrefixString(), Helpers.AddZeroes(dt.Month)) .Replace(CodeMenuEntryFilename.d.ToPrefixString(), Helpers.AddZeroes(dt.Day)); string hour; if (sb.ToString().Contains(CodeMenuEntryFilename.pm.ToPrefixString())) { hour = Helpers.HourTo12(dt.Hour); } else { hour = Helpers.AddZeroes(dt.Hour); } sb.Replace(CodeMenuEntryFilename.h.ToPrefixString(), hour) .Replace(CodeMenuEntryFilename.mi.ToPrefixString(), Helpers.AddZeroes(dt.Minute)) .Replace(CodeMenuEntryFilename.s.ToPrefixString(), Helpers.AddZeroes(dt.Second)) .Replace(CodeMenuEntryFilename.ms.ToPrefixString(), Helpers.AddZeroes(dt.Millisecond, 3)) .Replace(CodeMenuEntryFilename.w2.ToPrefixString(), CultureInfo.InvariantCulture.DateTimeFormat.GetDayName(dt.DayOfWeek)) .Replace(CodeMenuEntryFilename.w.ToPrefixString(), CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(dt.DayOfWeek)) .Replace(CodeMenuEntryFilename.pm.ToPrefixString(), dt.Hour >= 12 ? "PM" : "AM"); sb.Replace(CodeMenuEntryFilename.unix.ToPrefixString(), DateTime.UtcNow.ToUnix().ToString()); if (sb.ToString().Contains(CodeMenuEntryFilename.i.ToPrefixString()) || sb.ToString().Contains(CodeMenuEntryFilename.ib.ToPrefixString()) || sb.ToString().Contains(CodeMenuEntryFilename.ib.ToPrefixString().Replace('b', 'B')) || sb.ToString().Contains(CodeMenuEntryFilename.iAa.ToPrefixString()) || sb.ToString().Contains(CodeMenuEntryFilename.iAa.ToPrefixString().Replace("Aa", "aA")) || sb.ToString().Contains(CodeMenuEntryFilename.ia.ToPrefixString()) || sb.ToString().Contains(CodeMenuEntryFilename.ia.ToPrefixString().Replace('a', 'A')) || sb.ToString().Contains(CodeMenuEntryFilename.ix.ToPrefixString()) || sb.ToString().Contains(CodeMenuEntryFilename.ix.ToPrefixString().Replace('x', 'X'))) { AutoIncrementNumber++; // Base try { foreach (Tuple <string, int[]> entry in ListEntryWithValues(sb.ToString(), CodeMenuEntryFilename.ib.ToPrefixString(), 2)) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(entry.Item2[0], Helpers.AlphanumericInverse), entry.Item2[1])); } foreach (Tuple <string, int[]> entry in ListEntryWithValues(sb.ToString(), CodeMenuEntryFilename.ib.ToPrefixString().Replace('b', 'B'), 2)) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(entry.Item2[0], Helpers.Alphanumeric), entry.Item2[1])); } } catch { } // Alphanumeric Dual Case (Base 62) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.iAa.ToPrefixString())) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(62, Helpers.Alphanumeric), entry.Item2)); } sb.Replace(CodeMenuEntryFilename.iAa.ToPrefixString(), AutoIncrementNumber.ToBase(62, Helpers.Alphanumeric)); // Alphanumeric Dual Case (Base 62) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.iAa.ToPrefixString().Replace("Aa", "aA"))) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(62, Helpers.AlphanumericInverse), entry.Item2)); } sb.Replace(CodeMenuEntryFilename.iAa.ToPrefixString().Replace("Aa", "aA"), AutoIncrementNumber.ToBase(62, Helpers.AlphanumericInverse)); // Alphanumeric Single Case (Base 36) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.ia.ToPrefixString())) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(36, Helpers.Alphanumeric), entry.Item2).ToLowerInvariant()); } sb.Replace(CodeMenuEntryFilename.ia.ToPrefixString(), AutoIncrementNumber.ToBase(36, Helpers.Alphanumeric).ToLowerInvariant()); // Alphanumeric Single Case Capital (Base 36) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.ia.ToPrefixString().Replace('a', 'A'))) { sb.Replace(entry.Item1, Helpers.AddZeroes(AutoIncrementNumber.ToBase(36, Helpers.Alphanumeric), entry.Item2).ToUpperInvariant()); } sb.Replace(CodeMenuEntryFilename.ia.ToPrefixString().Replace('a', 'A'), AutoIncrementNumber.ToBase(36, Helpers.Alphanumeric).ToUpperInvariant()); // Hexadecimal (Base 16) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.ix.ToPrefixString())) { sb.Replace(entry.Item1, AutoIncrementNumber.ToString("x" + entry.Item2.ToString())); } sb.Replace(CodeMenuEntryFilename.ix.ToPrefixString(), AutoIncrementNumber.ToString("x")); // Hexadecimal Capital (Base 16) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.ix.ToPrefixString().Replace('x', 'X'))) { sb.Replace(entry.Item1, AutoIncrementNumber.ToString("X" + entry.Item2.ToString())); } sb.Replace(CodeMenuEntryFilename.ix.ToPrefixString().Replace('x', 'X'), AutoIncrementNumber.ToString("X")); // Number (Base 10) foreach (Tuple <string, int> entry in ListEntryWithValue(sb.ToString(), CodeMenuEntryFilename.i.ToPrefixString())) { sb.Replace(entry.Item1, AutoIncrementNumber.ToString("d" + entry.Item2.ToString())); } sb.Replace(CodeMenuEntryFilename.i.ToPrefixString(), AutoIncrementNumber.ToString("d")); } sb.Replace(CodeMenuEntryFilename.un.ToPrefixString(), Environment.UserName); sb.Replace(CodeMenuEntryFilename.uln.ToPrefixString(), Environment.UserDomainName); sb.Replace(CodeMenuEntryFilename.cn.ToPrefixString(), Environment.MachineName); if (Type == NameParserType.Text) { sb.Replace(CodeMenuEntryFilename.n.ToPrefixString(), Environment.NewLine); } string result = sb.ToString(); foreach (Tuple <string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.rn.ToPrefixString())) { result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => Helpers.GetRandomChar(Helpers.Numbers).ToString())); } foreach (Tuple <string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.ra.ToPrefixString())) { result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => Helpers.GetRandomChar(Helpers.Alphanumeric).ToString())); } foreach (Tuple <string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.rx.ToPrefixString())) { result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToLowerInvariant()).ToString())); } foreach (Tuple <string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.rx.ToPrefixString().Replace('x', 'X'))) { result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToUpperInvariant()).ToString())); } result = result.ReplaceAll(CodeMenuEntryFilename.rn.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Numbers).ToString()); result = result.ReplaceAll(CodeMenuEntryFilename.ra.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Alphanumeric).ToString()); result = result.ReplaceAll(CodeMenuEntryFilename.rx.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToLowerInvariant()).ToString()); result = result.ReplaceAll(CodeMenuEntryFilename.rx.ToPrefixString().Replace('x', 'X'), () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToUpperInvariant()).ToString()); result = result.ReplaceAll(CodeMenuEntryFilename.guid.ToPrefixString().ToLowerInvariant(), () => Guid.NewGuid().ToString().ToLowerInvariant()); result = result.ReplaceAll(CodeMenuEntryFilename.guid.ToPrefixString().ToUpperInvariant(), () => Guid.NewGuid().ToString().ToUpperInvariant()); if (Type == NameParserType.FolderPath) { result = Helpers.GetValidFolderPath(result); } else if (Type == NameParserType.FileName) { result = Helpers.GetValidFileName(result); } else if (Type == NameParserType.FilePath) { result = Helpers.GetValidFilePath(result); } else if (Type == NameParserType.URL) { result = Helpers.GetValidURL(result); } if (MaxNameLength > 0 && result.Length > MaxNameLength) { result = result.Remove(MaxNameLength); } return(result); }
public string BuildResolutionString() { return(ImageHeight > 0 && ImageWidth > 0 ? ImageWidth.ToString() + "x" + ImageHeight.ToString() : ""); }
/// <summary> /// Loads the control content. /// </summary> /// <param name="content">Content to load</param> /// <param name="forceReload">If true, the content is forced to reload</param> public void LoadContent(string content, bool forceReload) { if (!StopProcessing) { // Load the properties EnsureChildControls(); string path = null; string altText = null; // Load the image data if (!string.IsNullOrEmpty(content)) { XmlDocument xml = new XmlDocument(); xml.LoadXml(content); XmlNodeList properties = xml.SelectNodes("image/property"); if (properties != null) { foreach (XmlNode node in properties) { if (node.Attributes["name"] != null) { switch (node.Attributes["name"].Value.ToLowerCSafe()) { case "imagepath": path = ResolveUrl(node.InnerText.Trim()); break; case "alttext": altText = node.InnerText.Trim(); break; } } } } } else { // Ensure correct url from media selector path = Server.HtmlDecode(DefaultImage); } switch (ViewMode) { case ViewModeEnum.Edit: case ViewModeEnum.EditDisabled: // Force image width if (ImageWidth > 0) { selPath.ImageWidth = ImageWidth; selPath.ImagePreviewControl.Width = ImageWidth; } // Force image height if (ImageHeight > 0) { selPath.ImageHeight = ImageHeight; selPath.ImagePreviewControl.Height = ImageHeight; } // Initialize selected value if (forceReload || !RequestHelper.IsPostBack()) { selPath.Value = path; selPath.AlternateText = altText; } // Set image title if (ImageTitle != "") { lblTitle.Text = HTMLHelper.HTMLEncode(ImageTitle); } else { lblTitle.Visible = false; } break; default: Visible = true; if (string.IsNullOrEmpty(path)) { Visible = false; return; } // Force image width if (ImageWidth > 0) { imgImage.Width = ImageWidth; path = URLHelper.AddParameterToUrl(path, "width", ImageWidth.ToString()); } // Force image height if (ImageHeight > 0) { imgImage.Height = ImageHeight; path = URLHelper.AddParameterToUrl(path, "height", ImageHeight.ToString()); } // Use specific alternate text or default alternate text imgImage.AlternateText = String.IsNullOrEmpty(altText) ? AlternateText : altText; // Check authorization bool isAuthorized = true; if (CheckPermissions) { isAuthorized = PageManager.IsAuthorized; } // Only published if ((PortalContext.ViewMode != ViewModeEnum.LiveSite) || !SelectOnlyPublished || ((CurrentPageInfo != null) && CurrentPageInfo.IsPublished)) { if (isAuthorized) { imgImage.ImageUrl = path; } else { imgImage.Visible = false; } } else { imgImage.Visible = false; } break; } } }
/// <summary> /// Overridden CreateChildControls method. /// </summary> protected override void CreateChildControls() { Controls.Clear(); base.CreateChildControls(); if (!StopProcessing) { if (!CMSAbstractEditableControl.RequestEditViewMode(ViewMode, ContentID)) { ViewMode = ViewModeEnum.Preview; } // Create controls by actual page mode switch (ViewMode) { case ViewModeEnum.Edit: case ViewModeEnum.EditDisabled: { // Main editor panel pnlEditor = new Panel(); pnlEditor.ID = "pnlEditor"; pnlEditor.CssClass = "EditableImageEdit EditableImage_" + ContentID; pnlEditor.Attributes.Add("data-tracksavechanges", "true"); if (ImageWidth > 0) { pnlEditor.Style.Add(HtmlTextWriterStyle.Width, ImageWidth.ToString() + "px;"); } Controls.Add(pnlEditor); // Title label lblTitle = new Label(); lblTitle.EnableViewState = false; lblTitle.CssClass = "EditableTextTitle"; pnlEditor.Controls.Add(lblTitle); // Error label lblError = new Label(); lblError.EnableViewState = false; lblError.CssClass = "EditableTextError"; pnlEditor.Controls.Add(lblError); // Add image selector selPath = new ImageSelector(null, false); selPath.Culture = MembershipContext.AuthenticatedUser.PreferredUICultureCode; selPath.EnableOpenInFull = false; selPath.ID = "selPath"; selPath.UseImagePath = true; selPath.ImageCssClass = ImageCssClass; selPath.ImageStyle = ImageStyle; selPath.ShowTextBox = DisplaySelectorTextBox; selPath.DefaultValue = DefaultImage; selPath.AddCssClass("cms-bootstrap"); // Dialog configuration selPath.DialogConfig.ResizeToHeight = ResizeToHeight; selPath.DialogConfig.ResizeToWidth = ResizeToWidth; selPath.DialogConfig.ResizeToMaxSideSize = ResizeToMaxSideSize; pnlEditor.Controls.Add(selPath); selPath.Enabled = ViewMode.IsEdit(); selPath.IsLiveSite = ViewMode.IsLiveSite(); } break; default: { // Display content in non editing modes imgImage = new Image(); imgImage.ID = "imgImage"; imgImage.GenerateEmptyAlternateText = true; if (ImageCssClass != "") { imgImage.CssClass = ImageCssClass; } if (ImageStyle != "") { imgImage.Attributes.Add("style", ImageStyle); } imgImage.AlternateText = AlternateText; imgImage.ToolTip = AlternateText; imgImage.EnableViewState = false; Controls.Add(imgImage); } break; } } }
public override void RenderControl(HtmlTextWriter writer) { // goal is to render this markup except with dynamic widths and images: //<div class="slider-wrapper theme-default"> // <div id="slider" class="nivoSlider"> // <img src="images/toystory.jpg" alt="" /> // <img src="images/walle.jpg" alt="" /> // <img src="images/nemo.jpg" alt="" title="#htmlcaption" /> // </div> //</div> // add containing divs writer.AddStyleAttribute(HtmlTextWriterStyle.Width, ImageWidth.ToString()); writer.AddAttribute(HtmlTextWriterAttribute.Class, "slider-wrapper theme-default"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute(HtmlTextWriterAttribute.Class, "nivoSlider"); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID); writer.RenderBeginTag(HtmlTextWriterTag.Div); if (string.IsNullOrEmpty(ImageFolder)) { writer.Write("No Image Folder Configured"); // TODO: localize? } else { // render images string folderPath = Context.Server.MapPath(ImageFolder); if (!Directory.Exists(folderPath)) { throw new Exception("Invalid image folder path :" + imageFolder); } #if NET35 string[] files = Directory.GetFiles(folderPath); #else IEnumerable <string> files = System.IO.Directory.EnumerateFiles(folderPath); #endif if (!imageFolder.EndsWith("/")) { imageFolder += "/"; } foreach (string file in files) { //filter out any files in the folder that are not images string ext = Path.GetExtension(file); if (!SiteUtils.IsAllowedUploadBrowseFile(ext, ".jpg|.gif|.png|.jpeg")) { continue; } Image img = new Image(); img.EnableViewState = false; // make path relative rather than absolute img.ImageUrl = imageFolder + Path.GetFileName(file); img.AlternateText = " "; img.Width = imageWidth; img.RenderControl(writer); } } writer.RenderEndTag(); writer.RenderEndTag(); // add jquery onload function to start show Page.ClientScript.RegisterStartupScript(this.GetType(), GetUniqueId("startSlider"), GetPageLoadScript(), true); }
public static string Resizing(string url, ImageWidth image) { return(Resizing(url, (short)image)); }
/// <summary> /// Overridden CreateChildControls method. /// </summary> protected override void CreateChildControls() { Controls.Clear(); base.CreateChildControls(); if (!StopProcessing) { if (!CMSAbstractEditableControl.RequestEditViewMode(ViewMode, ContentID)) { ViewMode = ViewModeEnum.Preview; } // Create controls by actual page mode switch (ViewMode) { case ViewModeEnum.Edit: case ViewModeEnum.EditDisabled: { // Main editor panel pnlEditor = new Panel(); pnlEditor.ID = "pnlEditor"; pnlEditor.CssClass = "EditableImageEdit EditableImage_" + ContentID; pnlEditor.Attributes.Add("data-tracksavechanges", "true"); if (ImageWidth > 0) { pnlEditor.Style.Add(HtmlTextWriterStyle.Width, ImageWidth.ToString() + "px;"); } Controls.Add(pnlEditor); // Title label lblTitle = new Label(); lblTitle.EnableViewState = false; lblTitle.CssClass = "EditableTextTitle"; pnlEditor.Controls.Add(lblTitle); // Error label lblError = new Label(); lblError.EnableViewState = false; lblError.CssClass = "EditableTextError"; pnlEditor.Controls.Add(lblError); } break; default: { // Display content in non editing modes imgImage = new Image(); imgImage.ID = "imgImage"; imgImage.GenerateEmptyAlternateText = true; if (ImageCssClass != "") { imgImage.CssClass = ImageCssClass; } if (ImageStyle != "") { imgImage.Attributes.Add("style", ImageStyle); } imgImage.AlternateText = AlternateText; imgImage.ToolTip = AlternateText; imgImage.EnableViewState = false; Controls.Add(imgImage); } break; } } }