示例#1
0
        public string GetCaption(string controlPath)
        {
            CMSPlugin plug = (from p in this.Plugins
                              where p.FilePath.ToLowerInvariant() == controlPath.ToLowerInvariant()
                              select p).FirstOrDefault();

            if (plug != null)
            {
                return(plug.Caption);
            }

            return("NONE");
        }
        protected string GetCtrlName(string sCtrlName)
        {
            string    sName = "";
            CMSPlugin plug  = (from p in cmsHelper.ToolboxPlugins
                               where p.FilePath.ToLower() == sCtrlName.ToLower()
                               select p).FirstOrDefault();

            if (plug != null)
            {
                sName = plug.Caption;
            }

            return(sName);
        }
        protected void GetCtrlName(Widget ww)
        {
            string sName = "";

            CMSPlugin plug = (from p in cmsHelper.ToolboxPlugins
                              where p.FilePath.ToLowerInvariant() == ww.ControlPath.ToLowerInvariant()
                              select p).FirstOrDefault();

            if (plug != null)
            {
                sName = plug.Caption;
            }

            lnkIndex.NavigateUrl = String.Format("{0}?id={1}", SiteFilename.PageWidgetsURL, ww.Root_ContentID);

            litControlPathName.Text = sName;
        }
示例#4
0
        protected void GetCtrlName()
        {
            string sName = String.Empty;

            if (this.Widget != null)
            {
                using (CMSConfigHelper cmsHelper = new CMSConfigHelper()) {
                    CMSPlugin plug = (from p in cmsHelper.ToolboxPlugins
                                      where p.FilePath.ToLower() == this.Widget.ControlPath.ToLower()
                                      select p).FirstOrDefault();

                    if (plug != null)
                    {
                        sName = plug.Caption;
                    }
                }
            }

            this.WidgetCaption = sName;
        }
示例#5
0
        public void LoadPageControls()
        {
            this.CurrentWebPage.Header.Controls.Add(new Literal {
                Text = "\r\n"
            });

            List <HtmlMeta> lstMD = GetHtmlMeta(this.CurrentWebPage.Header);

            HtmlMeta metaGenerator = new HtmlMeta();

            metaGenerator.Name    = "generator";
            metaGenerator.Content = SiteData.CarrotCakeCMSVersion;
            this.CurrentWebPage.Header.Controls.Add(metaGenerator);
            this.CurrentWebPage.Header.Controls.Add(new Literal {
                Text = "\r\n"
            });

            if (guidContentID == SiteData.CurrentSiteID && SiteData.IsPageReal)
            {
                IsPageTemplate = true;
            }

            if (theSite != null && pageContents != null)
            {
                if (theSite.BlockIndex || pageContents.BlockIndex)
                {
                    bool     bCrawlExist = false;
                    HtmlMeta metaNoCrawl = new HtmlMeta();
                    metaNoCrawl.Name = "robots";

                    if (lstMD.Where(x => x.Name == "robots").Count() > 0)
                    {
                        metaNoCrawl = lstMD.Where(x => x.Name == "robots").FirstOrDefault();
                        bCrawlExist = true;
                    }

                    metaNoCrawl.Content = "noindex,nofollow,noarchive";

                    if (!bCrawlExist)
                    {
                        this.CurrentWebPage.Header.Controls.Add(metaNoCrawl);
                        this.CurrentWebPage.Header.Controls.Add(new Literal {
                            Text = "\r\n"
                        });
                    }
                }
            }

            InsertSpecialCtrl(this.CurrentWebPage.Header, ControlLocation.Header);

            if (pageContents != null)
            {
                HtmlMeta metaDesc   = new HtmlMeta();
                HtmlMeta metaKey    = new HtmlMeta();
                bool     bDescExist = false;
                bool     bKeyExist  = false;

                if (lstMD.Where(x => x.Name == "description").Count() > 0)
                {
                    metaDesc   = lstMD.Where(x => x.Name == "description").FirstOrDefault();
                    bDescExist = true;
                }
                if (lstMD.Where(x => x.Name == "keywords").Count() > 0)
                {
                    metaKey   = lstMD.Where(x => x.Name == "keywords").FirstOrDefault();
                    bKeyExist = true;
                }

                metaDesc.Name    = "description";
                metaKey.Name     = "keywords";
                metaDesc.Content = String.IsNullOrEmpty(pageContents.MetaDescription) ? theSite.MetaDescription : pageContents.MetaDescription;
                metaKey.Content  = String.IsNullOrEmpty(pageContents.MetaKeyword) ? theSite.MetaKeyword : pageContents.MetaKeyword;

                int indexPos = 6;
                if (this.CurrentWebPage.Header.Controls.Count > indexPos)
                {
                    if (!String.IsNullOrEmpty(metaDesc.Content) && !bDescExist)
                    {
                        this.CurrentWebPage.Header.Controls.AddAt(indexPos, new Literal {
                            Text = "\r\n"
                        });
                        this.CurrentWebPage.Header.Controls.AddAt(indexPos, metaDesc);
                    }
                    if (!String.IsNullOrEmpty(metaKey.Content) && !bKeyExist)
                    {
                        this.CurrentWebPage.Header.Controls.AddAt(indexPos, new Literal {
                            Text = "\r\n"
                        });
                        this.CurrentWebPage.Header.Controls.AddAt(indexPos, metaKey);
                    }
                }
                else
                {
                    if (!String.IsNullOrEmpty(metaDesc.Content) && !bDescExist)
                    {
                        this.CurrentWebPage.Header.Controls.Add(metaDesc);
                        this.CurrentWebPage.Header.Controls.Add(new Literal {
                            Text = "\r\n"
                        });
                    }
                    if (!String.IsNullOrEmpty(metaKey.Content) && !bKeyExist)
                    {
                        this.CurrentWebPage.Header.Controls.Add(metaKey);
                        this.CurrentWebPage.Header.Controls.Add(new Literal {
                            Text = "\r\n"
                        });
                    }
                }

                metaDesc.Visible = !String.IsNullOrEmpty(metaDesc.Content);
                metaKey.Visible  = !String.IsNullOrEmpty(metaKey.Content);
            }

            contCenter = new ContentContainer();
            contLeft   = new ContentContainer();
            contRight  = new ContentContainer();

            if (pageContents != null)
            {
                using (ContentPageHelper pageHelper = new ContentPageHelper()) {
                    PageViewType pvt            = pageHelper.GetBlogHeadingFromURL(theSite, SiteData.CurrentScriptName);
                    string       sTitleAddendum = pvt.ExtraTitle;

                    if (!String.IsNullOrEmpty(sTitleAddendum))
                    {
                        if (!String.IsNullOrEmpty(pageContents.PageHead))
                        {
                            pageContents.PageHead = pageContents.PageHead.Trim() + ": " + sTitleAddendum;
                        }
                        else
                        {
                            pageContents.PageHead = sTitleAddendum;
                        }
                        pageContents.TitleBar = pageContents.TitleBar.Trim() + ": " + sTitleAddendum;
                    }

                    PagedDataSummary pd = (PagedDataSummary)cu.FindControl(typeof(PagedDataSummary), this.CurrentWebPage);

                    if (pd != null)
                    {
                        PagedDataSummaryTitleOption titleOpts = pd.TypeLabelPrefixes.Where(x => x.KeyValue == pvt.CurrentViewType).FirstOrDefault();

                        if (titleOpts == null &&
                            (pvt.CurrentViewType == PageViewType.ViewType.DateDayIndex ||
                             pvt.CurrentViewType == PageViewType.ViewType.DateMonthIndex ||
                             pvt.CurrentViewType == PageViewType.ViewType.DateYearIndex))
                        {
                            titleOpts = pd.TypeLabelPrefixes.Where(x => x.KeyValue == PageViewType.ViewType.DateIndex).FirstOrDefault();
                        }

                        if (titleOpts != null && !String.IsNullOrEmpty(titleOpts.FormatText))
                        {
                            pvt.ExtraTitle = string.Format(titleOpts.FormatText, pvt.RawValue);
                            sTitleAddendum = pvt.ExtraTitle;
                        }

                        if (titleOpts != null && !String.IsNullOrEmpty(titleOpts.LabelText))
                        {
                            pageContents.PageHead    = titleOpts.LabelText + " " + sTitleAddendum;
                            pageContents.NavMenuText = pageContents.PageHead;
                            pageContents.TitleBar    = pageContents.PageHead;
                        }
                    }
                }

                this.CurrentWebPage.Title = SetPageTitle(pageContents);

                DateTime dtModified = theSite.ConvertSiteTimeToLocalServer(pageContents.EditDate);
                string   strModifed = dtModified.ToString("r");
                HttpContext.Current.Response.AppendHeader("Last-Modified", strModifed);
                HttpContext.Current.Response.Cache.SetLastModified(dtModified);

                DateTime dtExpire = DateTime.Now.AddSeconds(15);

                contCenter.Text = pageContents.PageText;
                contLeft.Text   = pageContents.LeftPageText;
                contRight.Text  = pageContents.RightPageText;

                contCenter.DatabaseKey = pageContents.Root_ContentID;
                contLeft.DatabaseKey   = pageContents.Root_ContentID;
                contRight.DatabaseKey  = pageContents.Root_ContentID;

                pageContents = CMSConfigHelper.IdentifyLinkAsInactive(pageContents);

                if (SecurityData.IsAuthenticated)
                {
                    HttpContext.Current.Response.Cache.SetNoServerCaching();
                    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    dtExpire = DateTime.Now.AddMinutes(-10);
                    HttpContext.Current.Response.Cache.SetExpires(dtExpire);

                    if (!SecurityData.AdvancedEditMode)
                    {
                        if (SecurityData.IsAdmin || SecurityData.IsSiteEditor)
                        {
                            if (!SiteData.IsPageSampler && !IsPageTemplate)
                            {
                                Control editor = this.CurrentWebPage.LoadControl(SiteFilename.EditNotifierControlPath);
                                this.CurrentWebPage.Form.Controls.Add(editor);
                            }
                        }
                    }
                    else
                    {
                        contCenter.IsAdminMode = true;
                        contLeft.IsAdminMode   = true;
                        contRight.IsAdminMode  = true;

                        contCenter.ZoneChar = "c";
                        contLeft.ZoneChar   = "l";
                        contRight.ZoneChar  = "r";

                        contCenter.TextZone = ContentContainer.TextFieldZone.TextCenter;
                        contLeft.TextZone   = ContentContainer.TextFieldZone.TextLeft;
                        contRight.TextZone  = ContentContainer.TextFieldZone.TextRight;

                        contCenter.Text = pageContents.PageText;
                        contLeft.Text   = pageContents.LeftPageText;
                        contRight.Text  = pageContents.RightPageText;

                        Control editor = this.CurrentWebPage.LoadControl(SiteFilename.AdvancedEditControlPath);
                        this.CurrentWebPage.Form.Controls.Add(editor);

                        MarkWidgets(this.CurrentWebPage, true);
                    }
                }
                else
                {
                    HttpContext.Current.Response.Cache.SetExpires(dtExpire);
                }

                InsertSpecialCtrl(this.CurrentWebPage.Form, ControlLocation.Footer);

                if (pageWidgets.Any())
                {
                    CMSConfigHelper cmsHelper = new CMSConfigHelper();

                    //find each placeholder in use ONCE!
                    List <LabeledControl> lstPlaceholders = (from ph in pageWidgets
                                                             where ph.Root_ContentID == pageContents.Root_ContentID
                                                             select new LabeledControl(ph.PlaceholderName, FindTheControl(ph.PlaceholderName, this.CurrentWebPage))).Distinct().ToList();

                    List <Widget> lstWidget = null;

                    if (SecurityData.AdvancedEditMode)
                    {
                        lstWidget = (from w in pageWidgets
                                     orderby w.WidgetOrder, w.EditDate
                                     where w.Root_ContentID == pageContents.Root_ContentID
                                     //&& w.IsWidgetActive == true
                                     && w.IsWidgetPendingDelete == false
                                     select w).ToList();
                    }
                    else
                    {
                        lstWidget = (from w in pageWidgets
                                     orderby w.WidgetOrder, w.EditDate
                                     where w.Root_ContentID == pageContents.Root_ContentID &&
                                     w.IsWidgetActive == true &&
                                     w.IsRetired == false && w.IsUnReleased == false &&
                                     w.IsWidgetPendingDelete == false
                                     select w).ToList();
                    }

                    foreach (Widget theWidget in lstWidget)
                    {
                        WidgetContainer plcHolder = (WidgetContainer)(from d in lstPlaceholders
                                                                      where d.ControlLabel == theWidget.PlaceholderName
                                                                      select d.KeyControl).FirstOrDefault();
                        if (plcHolder != null)
                        {
                            plcHolder.EnableViewState = true;
                            Control widget = new Control();

                            if (theWidget.ControlPath.EndsWith(".ascx"))
                            {
                                if (File.Exists(this.CurrentWebPage.Server.MapPath(theWidget.ControlPath)))
                                {
                                    try {
                                        widget = this.CurrentWebPage.LoadControl(theWidget.ControlPath);
                                    } catch (Exception ex) {
                                        Literal lit = new Literal();
                                        lit.Text = "<b>ERROR: " + theWidget.ControlPath + "</b> <br />\r\n" + ex.ToString();
                                        widget   = lit;
                                    }
                                }
                                else
                                {
                                    Literal lit = new Literal();
                                    lit.Text = "MISSING FILE: " + theWidget.ControlPath + "<br />\r\n";
                                    widget   = lit;
                                }
                            }

                            if (theWidget.ControlPath.ToLowerInvariant().StartsWith("class:"))
                            {
                                try {
                                    string className = theWidget.ControlPath.Replace("CLASS:", "");
                                    Type   t         = Type.GetType(className);
                                    Object o         = Activator.CreateInstance(t);

                                    if (o != null)
                                    {
                                        widget = o as Control;
                                    }
                                    else
                                    {
                                        Literal lit = new Literal();
                                        lit.Text = "OOPS: " + theWidget.ControlPath + "<br />\r\n";
                                        widget   = lit;
                                    }
                                } catch (Exception ex) {
                                    Literal lit = new Literal();
                                    lit.Text = "<b>ERROR: " + theWidget.ControlPath + "</b> <br />\r\n" + ex.ToString();
                                    widget   = lit;
                                }
                            }

                            widget.EnableViewState = true;

                            IWidget w = null;
                            if (widget is IWidget)
                            {
                                w               = widget as IWidget;
                                w.SiteID        = SiteData.CurrentSiteID;
                                w.PageWidgetID  = theWidget.Root_WidgetID;
                                w.RootContentID = theWidget.Root_ContentID;
                            }

                            if (widget is IWidgetParmData)
                            {
                                IWidgetParmData    wp      = widget as IWidgetParmData;
                                List <WidgetProps> lstProp = theWidget.ParseDefaultControlProperties();

                                wp.PublicParmValues = lstProp.ToDictionary(t => t.KeyName, t => t.KeyValue);
                            }

                            if (widget is IWidgetRawData)
                            {
                                IWidgetRawData wp = widget as IWidgetRawData;
                                wp.RawWidgetData = theWidget.ControlProperties;
                            }

                            if (widget is IWidgetEditStatus)
                            {
                                IWidgetEditStatus wes = widget as IWidgetEditStatus;
                                wes.IsBeingEdited = SecurityData.AdvancedEditMode;
                            }

                            Dictionary <string, string> lstMenus = new Dictionary <string, string>();
                            if (widget is IWidgetMultiMenu)
                            {
                                IWidgetMultiMenu wmm = widget as IWidgetMultiMenu;
                                lstMenus = wmm.JSEditFunctions;
                            }

                            if (SecurityData.AdvancedEditMode)
                            {
                                WidgetWrapper plcWrapper = plcHolder.AddWidget(widget, theWidget);

                                CMSPlugin plug = (from p in cmsHelper.ToolboxPlugins
                                                  where p.FilePath.ToLowerInvariant() == plcWrapper.ControlPath.ToLowerInvariant()
                                                  select p).FirstOrDefault();

                                if (plug != null)
                                {
                                    plcWrapper.ControlTitle = plug.Caption;
                                }
                                else
                                {
                                    plcWrapper.ControlTitle = "UNTITLED";
                                }

                                plcWrapper.ID = WrapCtrlId;

                                if (w != null)
                                {
                                    if (w.EnableEdit)
                                    {
                                        if (lstMenus.Count < 1)
                                        {
                                            string sScript = w.JSEditFunction;
                                            if (String.IsNullOrEmpty(sScript))
                                            {
                                                sScript = "cmsGenericEdit('" + pageContents.Root_ContentID + "','" + plcWrapper.DatabaseKey + "')";
                                            }

                                            plcWrapper.JSEditFunction = sScript;
                                        }
                                        else
                                        {
                                            plcWrapper.JSEditFunctions = lstMenus;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                plcHolder.AddWidget(widget);
                            }

                            widget.ID = CtrlId;
                        }
                    }

                    cmsHelper.Dispose();
                }
            }
        }
示例#6
0
        public static HtmlString RenderWidget(string placeHolderName)
        {
            StringBuilder sb                  = new StringBuilder();
            string        sWidgetZone         = String.Empty;
            string        masterWidgetWrapper = String.Empty;
            string        widgetMenuTemplate  = String.Empty;
            string        sStatusTemplate     = String.Empty;

            if (SecurityData.AdvancedEditMode)
            {
                widgetMenuTemplate  = "<li id=\"liMenu\"><a href=\"javascript:[[JS_CALL]]\" id=\"cmsMenuEditLink\" class=\"cmsWidgetBarLink cmsWidgetBarIconPencil\" alt=\"[[CAP]]\" title=\"[[CAP]]\"> [[CAP]]</a></li>";
                sWidgetZone         = ControlUtilities.GetManifestResourceStream("Carrotware.CMS.UI.Components._WidgetZone.cshtml");
                masterWidgetWrapper = ControlUtilities.GetManifestResourceStream("Carrotware.CMS.UI.Components._WidgetWrapper.cshtml");

                sWidgetZone         = sWidgetZone.Replace("[[PLACEHOLDER]]", placeHolderName);
                masterWidgetWrapper = masterWidgetWrapper.Replace("[[PLACEHOLDER]]", placeHolderName);
            }

            int iWidgetCount = 0;

            var widgetList = (from w in CmsPage.TheWidgets
                              where w.PlaceholderName.ToLowerInvariant() == placeHolderName.ToLowerInvariant()
                              orderby w.WidgetOrder, w.EditDate
                              select w).ToList();

            foreach (Widget widget in widgetList)
            {
                bool IsWidgetClass = false;

                string widgetKey = String.Format("WidgetId_{0}_{1}", placeHolderName, iWidgetCount);
                if (Html.ViewContext.Controller is IContentController)
                {
                    IContentController cc = (Html.ViewContext.Controller as IContentController);

                    widgetKey = String.Format("WidgetId_{0}", cc.WidgetCount);
                }

                iWidgetCount++;

                string widgetText    = String.Empty;
                string widgetWrapper = String.Empty;
                Dictionary <string, string> lstMenus = new Dictionary <string, string>();

                if (widget.ControlPath.Contains(":"))
                {
                    string[] path         = widget.ControlPath.Split(':');
                    string   objectPrefix = path[0];
                    string   objectClass  = path[1];
                    string   altView      = path.Length >= 3 ? path[2] : String.Empty;

                    Object obj      = null;
                    Object settings = null;

                    try {
                        Type objType = ReflectionUtilities.GetTypeFromString(objectClass);

                        obj = Activator.CreateInstance(objType);

                        if (objectPrefix.ToUpperInvariant() != "CLASS")
                        {
                            IsWidgetClass = false;
                            // assumed to be a controller action/method
                            Object attrib = ReflectionUtilities.GetAttribute <WidgetActionSettingModelAttribute>(objType, objectPrefix);

                            if (attrib != null && attrib is WidgetActionSettingModelAttribute)
                            {
                                string attrClass = (attrib as WidgetActionSettingModelAttribute).ClassName;
                                Type   s         = ReflectionUtilities.GetTypeFromString(attrClass);
                                settings = Activator.CreateInstance(s);
                            }
                        }
                        else
                        {
                            IsWidgetClass = true;
                            // a class widget is its own setting object
                            settings = obj;
                        }

                        if (settings != null)
                        {
                            if (settings is IWidget)
                            {
                                IWidget w = settings as IWidget;
                                w.SiteID            = CmsPage.TheSite.SiteID;
                                w.RootContentID     = widget.Root_ContentID;
                                w.PageWidgetID      = widget.Root_WidgetID;
                                w.IsDynamicInserted = true;
                                w.IsBeingEdited     = SecurityData.AdvancedEditMode;
                                w.WidgetClientID    = widgetKey;

                                List <WidgetProps> lstProp = widget.ParseDefaultControlProperties();
                                w.PublicParmValues = lstProp.ToDictionary(t => t.KeyName, t => t.KeyValue);

                                lstMenus = w.JSEditFunctions;

                                if (!lstMenus.Any() && w.EnableEdit)
                                {
                                    lstMenus.Add("Edit", "cmsGenericEdit('" + widget.Root_ContentID.ToString() + "','" + widget.Root_WidgetID.ToString() + "')");
                                }
                            }

                            if (settings is IWidgetView)
                            {
                                if (!String.IsNullOrEmpty(altView))
                                {
                                    (settings as IWidgetView).AlternateViewFile = altView;
                                }
                            }

                            if (settings is IWidgetRawData)
                            {
                                (settings as IWidgetRawData).RawWidgetData = widget.ControlProperties;
                            }
                        }

                        if (obj != null && settings != null && obj is IWidgetDataObject)
                        {
                            (obj as IWidgetDataObject).WidgetPayload = settings;
                        }

                        if (IsWidgetClass && obj is IHtmlString)
                        {
                            widgetText = (obj as IHtmlString).ToHtmlString();
                        }
                        else
                        {
                            widgetText = GetResultViewStringFromController(objectPrefix, objType, obj);
                        }
                    } catch (Exception ex) {
                        LiteralMessage msg = new LiteralMessage(ex, widgetKey, widget.ControlPath);
                        obj        = msg;
                        widgetText = msg.ToHtmlString();
                    }
                }

                widgetText = widgetText ?? String.Empty;

                if (!widget.ControlPath.Contains(":") && String.IsNullOrEmpty(widgetText))
                {
                    string[] path       = widget.ControlPath.Split('|');
                    string   viewPath   = path[0];
                    string   modelClass = String.Empty;
                    if (path.Length > 1)
                    {
                        modelClass = path[1];
                    }

                    try {
                        if (viewPath.EndsWith(".cshtml") || viewPath.EndsWith(".vbhtml"))
                        {
                            if (String.IsNullOrEmpty(modelClass))
                            {
                                widgetText = RenderPartialToString(viewPath);
                            }
                            else
                            {
                                Type objType = ReflectionUtilities.GetTypeFromString(modelClass);

                                Object model = Activator.CreateInstance(objType);

                                if (model is IWidgetRawData)
                                {
                                    (model as IWidgetRawData).RawWidgetData = widget.ControlProperties;
                                }

                                if (model is IWidget)
                                {
                                    IWidget w = model as IWidget;
                                    w.SiteID            = CmsPage.TheSite.SiteID;
                                    w.RootContentID     = widget.Root_ContentID;
                                    w.PageWidgetID      = widget.Root_WidgetID;
                                    w.IsDynamicInserted = true;
                                    w.IsBeingEdited     = SecurityData.AdvancedEditMode;
                                    w.WidgetClientID    = widgetKey;

                                    List <WidgetProps> lstProp = widget.ParseDefaultControlProperties();
                                    w.PublicParmValues = lstProp.ToDictionary(t => t.KeyName, t => t.KeyValue);

                                    lstMenus = w.JSEditFunctions;

                                    if (!lstMenus.Any() && w.EnableEdit)
                                    {
                                        lstMenus.Add("Edit", "cmsGenericEdit('" + widget.Root_ContentID.ToString() + "','" + widget.Root_WidgetID.ToString() + "')");
                                    }
                                }

                                widgetText = RenderPartialToString(viewPath, model);
                            }
                        }
                    } catch (Exception ex) {
                        LiteralMessage msg = new LiteralMessage(ex, widgetKey, widget.ControlPath);
                        widgetText = msg.ToHtmlString();
                    }
                }

                if (widgetText == null || widget.ControlPath.ToLowerInvariant().EndsWith(".ascx"))
                {
                    LiteralMessage msg = new LiteralMessage("The widget is not supported.", widgetKey, widget.ControlPath);
                    widgetText = msg.ToHtmlString();
                }

                widgetText = widgetText ?? String.Empty;

                if (SecurityData.AdvancedEditMode)
                {
                    if (widget.IsWidgetActive)
                    {
                        sStatusTemplate = "<a href=\"javascript:cmsRemoveWidgetLink('[[ITEM_ID]]');\" id=\"cmsContentRemoveLink\" class=\"cmsWidgetBarLink cmsWidgetBarIconCross\" alt=\"Remove\" title=\"Remove\">  Disable</a>";
                    }
                    else
                    {
                        sStatusTemplate = "<a href=\"javascript:cmsActivateWidgetLink('[[ITEM_ID]]');\" id=\"cmsActivateWidgetLink\" class=\"cmsWidgetBarLink cmsWidgetBarIconActive\" alt=\"Activate\" title=\"Activate\">  Enable</a>";
                    }

                    widgetWrapper = masterWidgetWrapper;
                    widgetWrapper = widgetWrapper.Replace("[[STATUS_LINK]]", sStatusTemplate);
                    widgetWrapper = widgetWrapper.Replace("[[WIDGET_PATH]]", widget.ControlPath);
                    widgetWrapper = widgetWrapper.Replace("[[sequence]]", widget.WidgetOrder.ToString());
                    widgetWrapper = widgetWrapper.Replace("[[ITEM_ID]]", widget.Root_WidgetID.ToString());

                    CMSPlugin plug = (from p in CmsPage.Plugins
                                      where p.FilePath.ToLowerInvariant() == widget.ControlPath.ToLowerInvariant()
                                      select p).FirstOrDefault();

                    string captionPrefix = String.Empty;

                    if (!widget.IsWidgetActive)
                    {
                        captionPrefix = String.Format("{0} {1}", CMSConfigHelper.InactivePagePrefix, captionPrefix);
                    }
                    if (widget.IsRetired)
                    {
                        captionPrefix = String.Format("{0} {1}", CMSConfigHelper.RetiredPagePrefix, captionPrefix);
                    }
                    if (widget.IsUnReleased)
                    {
                        captionPrefix = String.Format("{0} {1}", CMSConfigHelper.UnreleasedPagePrefix, captionPrefix);
                    }
                    if (widget.IsWidgetPendingDelete)
                    {
                        captionPrefix = String.Format("{0} {1}", CMSConfigHelper.PendingDeletePrefix, captionPrefix);
                    }

                    if (plug != null)
                    {
                        string sysControl = (plug.SystemPlugin ? "[CMS]" : String.Empty);
                        widgetWrapper = widgetWrapper.Replace("[[WIDGET_CAPTION]]", String.Format("{0}  {1}  {2}", captionPrefix, plug.Caption, sysControl).Trim());
                    }
                    else
                    {
                        widgetWrapper = widgetWrapper.Replace("[[WIDGET_CAPTION]]", String.Format("{0}  UNTITLED", captionPrefix).Trim());
                    }

                    StringBuilder sbMenu = new StringBuilder();
                    sbMenu.AppendLine();
                    if (lstMenus != null)
                    {
                        foreach (var d in lstMenus)
                        {
                            sbMenu.AppendLine(widgetMenuTemplate.Replace("[[JS_CALL]]", d.Value).Replace("[[CAP]]", d.Key));
                        }
                    }

                    widgetWrapper = widgetWrapper.Replace("[[MENU_ITEMS]]", sbMenu.ToString().Trim());
                    widgetWrapper = widgetWrapper.Replace("[[WIDGET_CAPTION]]", widget.ControlPath + captionPrefix);

                    widgetWrapper = widgetWrapper.Replace("[[CONTENT]]", widgetText);
                }
                else
                {
                    widgetWrapper = widgetText;
                }

                if (!String.IsNullOrEmpty(widgetWrapper))
                {
                    sb.AppendLine(widgetWrapper);
                }
            }

            string bodyText = String.Empty;

            if (SecurityData.AdvancedEditMode)
            {
                bodyText = sWidgetZone.Replace("[[CONTENT]]", sb.ToString());
            }
            else
            {
                bodyText = sb.ToString();
            }

            return(new HtmlString(bodyText));
        }
示例#7
0
        protected void BuildWidgetInstall()
        {
            pnlReview.Visible = true;

            SiteData site = SiteData.CurrentSite;

            CMSAdminModuleMenu thisModule = cmsHelper.GetCurrentAdminModuleControl();
            string             sDir       = thisModule.ControlFile.Substring(0, thisModule.ControlFile.LastIndexOf("/"));
            List <CMSPlugin>   lstPlug    = cmsHelper.GetPluginsInFolder(sDir);

            CMSPlugin plug = lstPlug.Where(x => x.FilePath.EndsWith("PhotoGalleryPrettyPhoto.ascx")).FirstOrDefault();

            GalleryHelper gh = new GalleryHelper(site.SiteID);

            foreach (GridViewRow row in gvPages.Rows)
            {
                Guid gRootPage = Guid.Empty;
                Guid gGallery  = Guid.Empty;
                int  iPost     = 0;

                CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");

                if (chkSelect.Checked)
                {
                    HiddenField hdnPostID = (HiddenField)row.FindControl("hdnPostID");

                    iPost = int.Parse(hdnPostID.Value);

                    List <WordPressPost> lstA = (from a in wpSite.Content
                                                 where a.PostType == WordPressPost.WPPostType.Attachment &&
                                                 a.ParentPostID == iPost
                                                 orderby a.PostDateUTC
                                                 select a).Distinct().ToList();

                    lstA.ToList().ForEach(q => q.ImportFileSlug = ddlFolders.SelectedValue + "/" + q.ImportFileSlug);
                    lstA.ToList().ForEach(q => q.ImportFileSlug = q.ImportFileSlug.Replace("//", "/").Replace("//", "/"));

                    WordPressPost post = (from p in wpSite.Content
                                          where p.PostID == iPost
                                          select p).FirstOrDefault();

                    ContentPage cp = null;

                    List <ContentPage> lstCP = pageHelper.FindPageByTitleAndDate(site.SiteID, post.PostTitle, post.PostName, post.PostDateUTC);

                    if (lstCP != null && lstCP.Any())
                    {
                        cp = lstCP.FirstOrDefault();
                    }

                    if (cp != null)
                    {
                        gRootPage = cp.Root_ContentID;
                        if (cp.PageText.Contains("[gallery]"))
                        {
                            cp.PageText = cp.PageText.Replace("[gallery]", "");
                            cp.SavePageEdit();
                        }
                    }

                    GalleryGroup gal = gh.GalleryGroupGetByName(post.PostTitle);

                    if (gal == null)
                    {
                        gal              = new GalleryGroup();
                        gal.SiteID       = site.SiteID;
                        gal.GalleryID    = Guid.Empty;
                        gal.GalleryTitle = post.PostTitle;

                        gal.Save();
                    }

                    gGallery = gal.GalleryID;

                    int iPos = 0;

                    foreach (var img in lstA)
                    {
                        img.ImportFileSlug = img.ImportFileSlug.Replace("//", "/").Replace("//", "/");

                        if (!chkFileGrab.Checked)
                        {
                            cmsHelper.GetFile(img.AttachmentURL, img.ImportFileSlug);
                        }

                        if (!string.IsNullOrEmpty(img.ImportFileSlug))
                        {
                            GalleryImageEntry theImg = gh.GalleryImageEntryGetByFilename(gGallery, img.ImportFileSlug);

                            if (theImg == null)
                            {
                                theImg = new GalleryImageEntry();
                                theImg.GalleryImage   = img.ImportFileSlug;
                                theImg.GalleryImageID = Guid.Empty;
                                theImg.GalleryID      = gGallery;
                            }
                            theImg.ImageOrder = iPos;
                            theImg.Save();

                            GalleryMetaData theMeta = gh.GalleryMetaDataGetByFilename(img.ImportFileSlug);

                            if (theMeta == null)
                            {
                                theMeta = new GalleryMetaData();
                                theMeta.GalleryImageMetaID = Guid.Empty;
                                theMeta.SiteID             = site.SiteID;
                            }

                            if (!string.IsNullOrEmpty(img.PostTitle) || !string.IsNullOrEmpty(img.PostContent))
                            {
                                theMeta.ImageTitle    = img.PostTitle;
                                theMeta.ImageMetaData = img.PostContent;

                                theMeta.Save();
                            }
                        }
                        iPos++;
                    }

                    if (gRootPage != Guid.Empty)
                    {
                        List <Widget> lstW = (from w in cp.GetWidgetList()
                                              where w.ControlPath.ToLower() == plug.FilePath.ToLower() &&
                                              w.ControlProperties.ToLower().Contains(gGallery.ToString().ToLower())
                                              select w).ToList();

                        if (lstW.Count < 1)
                        {
                            Widget newWidget = new Widget();
                            newWidget.ControlProperties = null;
                            newWidget.Root_ContentID    = gRootPage;
                            newWidget.Root_WidgetID     = Guid.NewGuid();
                            newWidget.WidgetDataID      = newWidget.Root_WidgetID;
                            newWidget.ControlPath       = plug.FilePath;
                            newWidget.EditDate          = SiteData.CurrentSite.Now;

                            newWidget.IsLatestVersion       = true;
                            newWidget.IsWidgetActive        = true;
                            newWidget.IsWidgetPendingDelete = false;
                            newWidget.WidgetOrder           = -1;
                            newWidget.PlaceholderName       = txtPlaceholderName.Text;

                            List <WidgetProps> lstProps = new List <WidgetProps>();
                            lstProps.Add(new WidgetProps {
                                KeyName = "ShowHeading", KeyValue = chkShowHeading.Checked.ToString()
                            });
                            lstProps.Add(new WidgetProps {
                                KeyName = "ScaleImage", KeyValue = chkScaleImage.Checked.ToString()
                            });
                            lstProps.Add(new WidgetProps {
                                KeyName = "ThumbSize", KeyValue = ddlSize.SelectedValue
                            });
                            lstProps.Add(new WidgetProps {
                                KeyName = "PrettyPhotoSkin", KeyValue = ddlSkin.SelectedValue
                            });
                            lstProps.Add(new WidgetProps {
                                KeyName = "GalleryID", KeyValue = gGallery.ToString()
                            });

                            newWidget.SaveDefaultControlProperties(lstProps);

                            newWidget.Save();
                        }
                    }
                }
            }
        }