Esempio n. 1
0
        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() : "");
 }
Esempio n. 3
0
    /// <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;
            }
        }
    }
Esempio n. 4
0
    /// <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;
            }
        }
    }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public static string Resizing(string url, ImageWidth image)
 {
     return(Resizing(url, (short)image));
 }
Esempio n. 7
0
    /// <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;
            }
        }
    }