/// <summary> /// Adds a widget of the specified type. /// </summary> /// <param name="type">The type of widget.</param> private void AddWidget(string type) { WidgetBase widget = (WidgetBase)LoadControl(Utils.RelativeWebRoot + "widgets/" + type + "/widget.ascx"); widget.WidgetID = Guid.NewGuid(); widget.ID = widget.WidgetID.ToString().Replace("-", string.Empty); widget.Title = type; widget.ShowTitle = widget.DisplayHeader; widget.LoadWidget(); Response.Clear(); try { using (StringWriter sw = new StringWriter()) { widget.RenderControl(new HtmlTextWriter(sw)); Response.Write(sw); } } catch (System.Web.HttpException) { Response.Write("reload"); } SaveNewWidget(widget); WidgetEditBase.OnSaved(); Response.End(); }
/// <summary> /// Adds a widget of the specified type. /// </summary> /// <param name="type">The type of widget.</param> /// <param name="zone">The zone a widget is being added to.</param> private void AddWidget(string type, string zone) { WidgetBase widget = (WidgetBase)LoadControl(Utils.RelativeWebRoot + "widgets/" + type + "/widget.ascx"); widget.WidgetID = Guid.NewGuid(); widget.ID = widget.WidgetID.ToString().Replace("-", string.Empty); widget.Title = type; widget.Zone = zone; widget.ShowTitle = widget.DisplayHeader; widget.LoadWidget(); Response.Clear(); try { using (StringWriter sw = new StringWriter()) { widget.RenderControl(new HtmlTextWriter(sw)); // Using ? as a delimiter. ? is a safe delimiter because it cannot appear in a // zonename because ? is one of the characters removed by Utils.RemoveIllegalCharacters(). Response.Write(zone + "?" + sw); } } catch (System.Web.HttpException) { Response.Write("reload"); } SaveNewWidget(widget, zone); WidgetEditBase.OnSaved(); Response.End(); }
/// <summary> /// Raises the <see cref="E:System.Web.UI.Control.Load"></see> event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs"></see> object that contains the event data.</param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); XmlNodeList zone = XML_DOCUMENT.SelectNodes("//widget"); foreach (XmlNode widget in zone) { string fileName = Utils.RelativeWebRoot + "widgets/" + widget.InnerText + "/widget.ascx"; try { WidgetBase control = (WidgetBase)Page.LoadControl(fileName); control.WidgetID = new Guid(widget.Attributes["id"].InnerText); control.ID = control.WidgetID.ToString().Replace("-", string.Empty); control.Title = widget.Attributes["title"].InnerText; control.Zone = _ZoneName; if (control.IsEditable) { control.ShowTitle = bool.Parse(widget.Attributes["showTitle"].InnerText); } else { control.ShowTitle = control.DisplayHeader; } control.LoadWidget(); this.Controls.Add(control); } catch (Exception ex) { Literal lit = new Literal(); lit.Text = "<p style=\"color:red\">Widget " + widget.InnerText + " not found.<p>"; lit.Text += ex.Message; lit.Text += "<a class=\"delete\" href=\"javascript:void(0)\" onclick=\"BlogEngine.widgetAdmin.removeWidget('" + widget.Attributes["id"].InnerText + "');return false\" title=\"" + Resources.labels.delete + " widget\">X</a>"; this.Controls.Add(lit); } } }