Пример #1
0
        public ContentPage GetPost(Guid?id, Guid?versionid, Guid?importid, string mode)
        {
            ContentPage pageContents = null;

            this.ImportID  = importid;
            this.VersionID = versionid;
            this.Mode      = (String.IsNullOrEmpty(mode) || mode.Trim().ToLowerInvariant() != "raw") ? "html" : "raw";

            using (ContentPageHelper pageHelper = new ContentPageHelper()) {
                if (!id.HasValue && !versionid.HasValue && !importid.HasValue)
                {
                    if (pageContents == null)
                    {
                        pageContents = new ContentPage(SiteData.CurrentSiteID, ContentPageType.PageType.BlogEntry);
                    }

                    pageContents.Root_ContentID = Guid.Empty;
                }
                else
                {
                    if (importid.HasValue)
                    {
                        ContentPageExport cpe = ContentImportExportUtils.GetSerializedContentPageExport(importid.Value);
                        if (cpe != null)
                        {
                            pageContents          = cpe.ThePage;
                            pageContents.EditDate = SiteData.CurrentSite.Now;

                            var rp = pageHelper.GetLatestContentByURL(SiteData.CurrentSiteID, false, pageContents.FileName);
                            if (rp != null)
                            {
                                pageContents.Root_ContentID = rp.Root_ContentID;
                                pageContents.ContentID      = rp.ContentID;
                            }
                            else
                            {
                                pageContents.Root_ContentID = Guid.Empty;
                                pageContents.ContentID      = Guid.Empty;
                            }
                            pageContents.Parent_ContentID = null;
                            pageContents.NavOrder         = SiteData.BlogSortOrderNumber;
                        }
                    }
                    if (versionid.HasValue)
                    {
                        pageContents = pageHelper.GetVersion(SiteData.CurrentSiteID, versionid.Value);
                    }
                    if (id.HasValue && pageContents == null)
                    {
                        pageContents = pageHelper.FindContentByID(SiteData.CurrentSiteID, id.Value);
                    }
                }
            }

            OverrideCache(pageContents);

            SetPage(pageContents);

            return(pageContents);
        }
Пример #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Master.ActivateTab(AdminBaseMasterPage.SectionID.BlogContentAdd);

            RedirectIfNoSite();

            lblUpdated.Text    = SiteData.CurrentSite.Now.ToString();
            lblCreateDate.Text = SiteData.CurrentSite.Now.ToString();

            guidContentID        = GetGuidIDFromQuery();
            guidVersionContentID = GetGuidParameterFromQuery("versionid");
            guidImportContentID  = GetGuidParameterFromQuery("importid");

            sPageMode = GetStringParameterFromQuery("mode");
            if (sPageMode.ToLower() == "raw")
            {
                reBody.CssClass      = "rawEditor";
                reLeftBody.CssClass  = "rawEditor";
                reRightBody.CssClass = "rawEditor";
                divCenter.Visible    = false;
                divRight.Visible     = false;
                divLeft.Visible      = false;
            }

            if (!IsPostBack)
            {
                DateTime dtSite = CalcNearestFiveMinTime(SiteData.CurrentSite.Now);
                txtReleaseDate.Text = dtSite.ToShortDateString();
                txtReleaseTime.Text = dtSite.ToShortTimeString();
                txtRetireDate.Text  = dtSite.AddYears(200).ToShortDateString();
                txtRetireTime.Text  = dtSite.AddYears(200).ToShortTimeString();

                hdnRootID.Value = Guid.Empty.ToString();

                GeneralUtilities.BindList(listCats, SiteData.CurrentSite.GetCategoryList().OrderBy(x => x.CategoryText));
                GeneralUtilities.BindList(listTags, SiteData.CurrentSite.GetTagList().OrderBy(x => x.TagText));

                ContentPage pageContents = null;
                if (guidVersionContentID != Guid.Empty)
                {
                    pageContents = pageHelper.GetVersion(SiteID, guidVersionContentID);
                }
                if (guidContentID != Guid.Empty && pageContents == null)
                {
                    pageContents = pageHelper.FindContentByID(SiteID, guidContentID);
                }

                if (guidImportContentID != Guid.Empty)
                {
                    ContentPageExport cpe = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID);

                    if (cpe != null)
                    {
                        pageContents                  = cpe.ThePage;
                        pageContents.EditDate         = SiteData.CurrentSite.Now;
                        pageContents.Parent_ContentID = null;
                    }

                    var rp = pageHelper.GetLatestContentByURL(SiteID, false, pageContents.FileName);
                    if (rp != null)
                    {
                        pageContents.Root_ContentID = rp.Root_ContentID;
                        pageContents.ContentID      = rp.ContentID;
                    }
                    else
                    {
                        pageContents.Root_ContentID = Guid.Empty;
                        pageContents.ContentID      = Guid.Empty;
                    }
                    pageContents.Parent_ContentID = null;
                    pageContents.NavOrder         = SiteData.BlogSortOrderNumber;
                }

                //if (pageContents == null) {
                //    pageContents = new ContentPage(SiteData.CurrentSiteID, ContentPageType.PageType.BlogEntry);
                //}

                List <ContentPage> lstContent = pageHelper.GetAllLatestContentList(SiteID);

                GeneralUtilities.BindList(ddlTemplate, cmsHelper.Templates);

                chkDraft.Visible   = false;
                divEditing.Visible = false;

                Dictionary <string, float> dictTemplates = pageHelper.GetPopularTemplateList(SiteID, ContentPageType.PageType.BlogEntry);
                if (dictTemplates.Any())
                {
                    try {
                        GeneralUtilities.SelectListValue(ddlTemplate, dictTemplates.First().Key);
                    } catch { }
                }

                if (pageContents == null)
                {
                    btnDeleteButton.Visible = false;
                }

                if (pageContents != null)
                {
                    bool bRet = pageHelper.RecordPageLock(pageContents.Root_ContentID, SiteData.CurrentSite.SiteID, SecurityData.CurrentUserGuid);

                    if (pageContents.ContentType != ContentPageType.PageType.BlogEntry)
                    {
                        Response.Redirect(SiteFilename.PageAddEditURL + "?id=" + Request.QueryString.ToString());
                    }

                    cmsHelper.OverrideKey(pageContents.Root_ContentID);
                    cmsHelper.cmsAdminContent = pageContents;
                    cmsHelper.cmsAdminWidget  = pageContents.GetWidgetList();

                    BindTextDataGrid();

                    guidRootContentID = pageContents.Root_ContentID;
                    hdnRootID.Value   = guidRootContentID.ToString();

                    txtOldFile.Text = pageContents.FileName;

                    if (guidImportContentID != Guid.Empty)
                    {
                        txtOldFile.Text = "";
                    }

                    Dictionary <string, string> dataVersions = (from v in pageHelper.GetVersionHistory(SiteID, pageContents.Root_ContentID)
                                                                join u in ExtendedUserData.GetUserList() on v.EditUserId equals u.UserId
                                                                orderby v.EditDate descending
                                                                select new KeyValuePair <string, string>(v.ContentID.ToString(), string.Format("{0} ({1}) {2}", v.EditDate, u.UserName, (v.IsLatestVersion ? " [**] " : " ")))
                                                                ).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

                    GeneralUtilities.BindListDefaultText(ddlVersions, dataVersions, null, "Page Versions", "00000");

                    bLocked = pageHelper.IsPageLocked(pageContents);

                    pnlHB.Visible      = !bLocked;
                    pnlButtons.Visible = !bLocked;
                    divEditing.Visible = bLocked;
                    chkDraft.Visible   = !bLocked;
                    pnlHBEmpty.Visible = bLocked;

                    if (bLocked && pageContents.Heartbeat_UserId != null)
                    {
                        MembershipUser usr = SecurityData.GetUserByGuid(pageContents.Heartbeat_UserId.Value);
                        litUser.Text = "Read only mode. User '" + usr.UserName + "' is currently editing the page.";
                    }

                    txtTitle.Text    = pageContents.TitleBar;
                    txtNav.Text      = pageContents.NavMenuText;
                    txtHead.Text     = pageContents.PageHead;
                    txtPageSlug.Text = pageContents.PageSlug;
                    txtThumb.Text    = pageContents.Thumbnail;

                    txtDescription.Text = pageContents.MetaDescription;
                    txtKey.Text         = pageContents.MetaKeyword;

                    lblUpdated.Text    = pageContents.EditDate.ToString();
                    lblCreateDate.Text = pageContents.CreateDate.ToString();

                    reBody.Text      = pageContents.PageText;
                    reLeftBody.Text  = pageContents.LeftPageText;
                    reRightBody.Text = pageContents.RightPageText;

                    chkActive.Checked = pageContents.PageActive;
                    chkHide.Checked   = pageContents.BlockIndex;

                    GeneralUtilities.BindDataBoundControl(gvTracks, pageContents.GetTrackbacks());

                    txtReleaseDate.Text = pageContents.GoLiveDate.ToShortDateString();
                    txtReleaseTime.Text = pageContents.GoLiveDate.ToShortTimeString();
                    txtRetireDate.Text  = pageContents.RetireDate.ToShortDateString();
                    txtRetireTime.Text  = pageContents.RetireDate.ToShortTimeString();

                    if (pageContents.CreditUserId.HasValue)
                    {
                        var usr = new ExtendedUserData(pageContents.CreditUserId.Value);
                        hdnCreditUserID.Value = usr.UserName;
                        txtSearchUser.Text    = string.Format("{0} ({1})", usr.UserName, usr.EmailAddress);
                    }

                    pageContents.Parent_ContentID = null;

                    GeneralUtilities.SelectListValue(ddlTemplate, pageContents.TemplateFile.ToLower());

                    GeneralUtilities.SelectListValues(listTags, pageContents.ContentTags.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                    GeneralUtilities.SelectListValues(listCats, pageContents.ContentCategories.Cast <IContentMetaInfo>().Select(x => x.ContentMetaInfoID.ToString()).ToList());
                }
            }

            SetBlankText(reBody);
            SetBlankText(reLeftBody);
            SetBlankText(reRightBody);

            if (ddlVersions.Items.Count < 1)
            {
                pnlReview.Visible = false;
            }
        }
Пример #3
0
        protected void SavePage(bool bRedirect)
        {
            ContentPage pageContents = null;

            if (guidVersionContentID != Guid.Empty)
            {
                pageContents = pageHelper.GetVersion(SiteID, guidVersionContentID);
            }
            if (guidContentID != Guid.Empty && pageContents == null)
            {
                pageContents = pageHelper.FindContentByID(SiteID, guidContentID);
            }
            if (guidImportContentID != Guid.Empty)
            {
                pageContents = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID).ThePage;

                if (pageContents != null)
                {
                    pageContents.SiteID       = SiteID;
                    pageContents.EditDate     = SiteData.CurrentSite.Now;
                    pageContents.CreateUserId = SecurityData.CurrentUserGuid;
                    pageContents.CreateDate   = SiteData.CurrentSite.Now;

                    var rp = pageHelper.GetLatestContentByURL(SiteID, false, pageContents.FileName);
                    if (rp != null)
                    {
                        pageContents.Root_ContentID = rp.Root_ContentID;
                        pageContents.ContentID      = rp.ContentID;
                    }
                    else
                    {
                        pageContents.Root_ContentID = Guid.Empty;
                        pageContents.ContentID      = Guid.Empty;
                    }
                    pageContents.Parent_ContentID = null;
                    pageContents.NavOrder         = SiteData.BlogSortOrderNumber;
                }
            }

            if (pageContents == null)
            {
                pageContents = new ContentPage(SiteData.CurrentSiteID, ContentPageType.PageType.BlogEntry);
            }

            DateTime dtSite = CalcNearestFiveMinTime(SiteData.CurrentSite.Now);

            pageContents.GoLiveDate = dtSite.AddMinutes(-5);
            pageContents.RetireDate = dtSite.AddYears(200);

            pageContents.IsLatestVersion = true;
            pageContents.Thumbnail       = txtThumb.Text;

            pageContents.TemplateFile = ddlTemplate.SelectedValue;

            pageContents.TitleBar    = txtTitle.Text;
            pageContents.NavMenuText = txtNav.Text;
            pageContents.PageHead    = txtHead.Text;
            pageContents.PageSlug    = txtPageSlug.Text;

            pageContents.MetaDescription = txtDescription.Text;
            pageContents.MetaKeyword     = txtKey.Text;

            pageContents.EditDate = SiteData.CurrentSite.Now;
            pageContents.NavOrder = SiteData.BlogSortOrderNumber;

            pageContents.PageText      = reBody.Text;
            pageContents.LeftPageText  = reLeftBody.Text;
            pageContents.RightPageText = reRightBody.Text;

            pageContents.PageActive    = chkActive.Checked;
            pageContents.ShowInSiteNav = false;
            pageContents.ShowInSiteMap = false;
            pageContents.BlockIndex    = chkHide.Checked;

            pageContents.ContentType = ContentPageType.PageType.BlogEntry;

            pageContents.Parent_ContentID = null;

            if (String.IsNullOrEmpty(hdnCreditUserID.Value))
            {
                pageContents.CreditUserId = null;
            }
            else
            {
                var usr = new ExtendedUserData(hdnCreditUserID.Value);
                pageContents.CreditUserId = usr.UserId;
            }

            pageContents.GoLiveDate = Convert.ToDateTime(txtReleaseDate.Text + " " + txtReleaseTime.Text);
            pageContents.RetireDate = Convert.ToDateTime(txtRetireDate.Text + " " + txtRetireTime.Text);
            pageContents.EditUserId = SecurityData.CurrentUserGuid;

            pageContents.NewTrackBackURLs = txtTrackback.Text;

            List <ContentCategory> lstCat = new List <ContentCategory>();
            List <ContentTag>      lstTag = new List <ContentTag>();

            lstCat = (from cr in GeneralUtilities.GetSelectedValues(listCats).Select(x => new Guid(x))
                      join l in SiteData.CurrentSite.GetCategoryList() on cr equals l.ContentCategoryID
                      select l).ToList();

            lstTag = (from cr in GeneralUtilities.GetSelectedValues(listTags).Select(x => new Guid(x))
                      join l in SiteData.CurrentSite.GetTagList() on cr equals l.ContentTagID
                      select l).ToList();

            pageContents.ContentCategories = lstCat;
            pageContents.ContentTags       = lstTag;

            if (!chkDraft.Checked)
            {
                pageContents.SavePageEdit();
            }
            else
            {
                pageContents.SavePageAsDraft();
            }

            //if importing, copy in all meta data possible
            if (guidImportContentID != Guid.Empty)
            {
                List <Widget> widgets = ContentImportExportUtils.GetSerializedContentPageExport(guidImportContentID).ThePageWidgets;

                foreach (var wd in widgets)
                {
                    wd.Root_ContentID  = pageContents.Root_ContentID;
                    wd.Root_WidgetID   = Guid.NewGuid();
                    wd.WidgetDataID    = Guid.NewGuid();
                    wd.IsPendingChange = true;
                    wd.EditDate        = SiteData.CurrentSite.Now;
                    wd.Save();
                }

                ContentImportExportUtils.RemoveSerializedExportData(guidImportContentID);
            }

            cmsHelper.OverrideKey(pageContents.Root_ContentID);
            if (cmsHelper.cmsAdminWidget != null)
            {
                var ww = (from w in cmsHelper.cmsAdminWidget
                          where w.IsLatestVersion == true &&
                          w.IsPendingChange == true &&
                          (w.ControlPath.StartsWith("CLASS:Carrotware.CMS.UI.Controls.ContentRichText,") ||
                           w.ControlPath.StartsWith("CLASS:Carrotware.CMS.UI.Controls.ContentPlainText,"))
                          select w);

                foreach (Widget w in ww)
                {
                    w.Save();
                }
            }

            cmsHelper.cmsAdminContent = null;
            cmsHelper.cmsAdminWidget  = null;

            if (pageContents.FileName.ToLower().EndsWith(SiteData.DefaultDirectoryFilename))
            {
                VirtualDirectory.RegisterRoutes(true);
            }

            if (!bRedirect)
            {
                if (sPageMode.Length < 1)
                {
                    Response.Redirect(SiteData.CurrentScriptName + "?id=" + pageContents.Root_ContentID.ToString());
                }
                else
                {
                    Response.Redirect(SiteData.CurrentScriptName + "?mode=raw&id=" + pageContents.Root_ContentID.ToString());
                }
            }
            else
            {
                Response.Redirect(pageContents.FileName);
            }
        }