Пример #1
0
        void RenderOverlayPage()
        {
            //string html = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Admin.admin-iframe-overlay.htm");
            List<IAdminMenuItem> items = new List<IAdminMenuItem>();
            foreach (Type t in Core.Modules.GetInterfaceImplementations(typeof(IAdminMenuItem)))
                items.Add((IAdminMenuItem)Activator.CreateInstance(t));
            items.Sort(delegate(IAdminMenuItem a, IAdminMenuItem b)
            {
                int f = a.Priority.CompareTo(b.Priority);
                if (f != 0) return f;
                return a.MenuLinkText.CompareTo(b.MenuLinkText);
            });
            StringBuilder links = new StringBuilder();
            StringBuilder head = new StringBuilder();
            foreach (IAdminMenuItem item in items)
            {
                links.AppendFormat("<span class=\"divider\"> | </span><a class=\"tab\" href=\"javascript:void(0)\" onclick=\"{0}\">{1}</a>",
                    item.MenuLinkOnClick, item.MenuLinkText);
                head.Append(item.HeadContent);
            }

            string html = WebUtility.CacheTextFile("resources/admin/frames/admin-iframe-overlay.htm");
            SprocketScript scr = new SprocketScript(html, "Admin Overlay Frame", "Admin Overlay Frame");
            HttpContext.Current.Response.Write(
                scr.Execute()
                .Replace("[head-content]", head.ToString())
                .Replace("[menu-links]",links.ToString())
            );
        }
		void WebEvents_OnLoadRequestedPath(HandleFlag handled)
		{
			if (handled.Handled) return;
			if (SprocketPath.Sections[0] == "admin")
			{
				if (!WebAuthentication.Instance.IsLoggedIn)
				{
					HttpContext.Current.Response.Write("Access Denied.");
					handled.Set();
					return;
				}
				switch (SprocketPath.Value)
				{
					case "admin":
						{
							string html = WebUtility.CacheTextFile("resources/admin/frames/admin-iframes.htm");
							//string html = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Admin.admin-iframes.htm");
							SprocketScript scr = new SprocketScript(html, "Admin Frames", "Admin Frames");
							HttpContext.Current.Response.Write(scr.Execute());
						}
						break;

					case "admin/overlay":
						RenderOverlayPage();
						break;

					case "admin/frames":
						{
							string html = WebUtility.CacheTextFile("resources/admin/frames/admin-frames.htm");
							//string html = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Admin.admin-frames.htm");
							SprocketScript scr = new SprocketScript(html, "Admin Overlay Frame", "Admin Overlay Frame");
							HttpContext.Current.Response.Write(scr.Execute());
						}
						break;

					case "admin/addressbar":
						{
							string html = WebUtility.CacheTextFile("resources/admin/frames/admin-address-bar.htm");
							//string html = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Admin.admin-address-bar.htm");
							SprocketScript scr = new SprocketScript(html, "Admin Overlay Frame", "Admin Overlay Frame");
							HttpContext.Current.Response.Write(scr.Execute());
						}
						break;

					default:
						return;
				}
				handled.Set();
			}
		}