private void publishNowButton_Click(object sender, EventArgs e)
        {
            AdvancedArticle publicArticle;
            int             c = SFGlobal.ObjectManagerPublic.GetObjectCount(typeof(AdvancedArticle), "nodeID=" + currentNode.Id + " AND lang = '" + languageSelect.SelectedValue + "' AND rank=" + pageSelect.SelectedValue);

            if (c > 0)
            {
                publicArticle = (AdvancedArticle)SFGlobal.ObjectManagerPublic.GetObject(new OPathQuery(typeof(AdvancedArticle), "NodeID=" + currentNode.Id + " && Lang='" + languageSelect.SelectedValue + "' && Rank=" + pageSelect.SelectedValue));
            }
            else
            {
                publicArticle = (AdvancedArticle)SFGlobal.ObjectManagerPublic.GetObject(typeof(AdvancedArticle));
            }

            AdvancedArticle currentArticle = (AdvancedArticle)SFGlobal.ObjectManager.GetObject(new OPathQuery(typeof(AdvancedArticle), "NodeID=" + currentNode.Id + " && Lang='" + languageSelect.SelectedValue + "' && Rank=" + pageSelect.SelectedValue));

            publicArticle.Rank         = currentArticle.Rank;
            publicArticle.Title        = currentArticle.Title;
            publicArticle.Body         = currentArticle.Body;
            publicArticle.Keyword      = currentArticle.Keyword;
            publicArticle.Lang         = currentArticle.Lang;
            publicArticle.NodeID       = currentArticle.NodeID;
            publicArticle.Summary      = currentArticle.Summary;
            publicArticle.TemplateID   = currentArticle.TemplateID;
            publicArticle.UserID       = currentArticle.UserID;
            publicArticle.DateCreated  = currentArticle.DateCreated;
            publicArticle.DateModified = currentArticle.DateModified;

            SFGlobal.ObjectManagerPublic.PersistChanges(publicArticle);
            currentArticle.Publish = false;
            SFGlobal.ObjectManager.PersistChanges(currentArticle);
            publishCheck.Checked = false;
            msg.Text             = "article published";
        }
        private void saveCurrentPage()
        {
            this.removePreviewArticle();
            AdvancedArticle aa = (AdvancedArticle)SFGlobal.ObjectManager.GetObject(new OPathQuery(typeof(AdvancedArticle), String.Format("NodeID=={0} && Rank=={1} && Version=={2} && Lang='{3}'", currentNode.Id, rank, version, lang), ""));

            aa.TemplateID   = int.Parse(articleTemplateID.SelectedValue);
            aa.Title        = title.Text;
            aa.Summary      = summary.Text;
            aa.Keyword      = keywords.Text;
            aa.Body         = body1.Value;
            aa.UserID       = SFGlobal.CurrentUser.ID;
            aa.DateModified = DateTime.Now;
            aa.Publish      = publishCheck.Checked;
            aa.Active       = activeCheck.Checked;
            SFGlobal.ObjectManager.PersistChanges(aa);
            msg.Text = "changes saved";
        }
        private void createArticlePage(string language, int rank)
        {
            AdvancedArticle aa = (AdvancedArticle)SFGlobal.ObjectManager.GetObject(typeof(AdvancedArticle));

            aa.NodeID      = currentNode.Id;
            aa.TemplateID  = 1;
            aa.Lang        = language;
            aa.Version     = 1;
            aa.Rank        = rank;
            aa.Title       = currentNode.getName(SFGlobal.DefaultLanguage);
            aa.Body        = "new body text";
            aa.UserID      = SFGlobal.CurrentUser.ID;
            aa.Publish     = false;
            aa.Preview     = false;
            aa.Active      = true;
            aa.DateCreated = aa.DateModified = DateTime.Now;
            SFGlobal.ObjectManager.PersistChanges(aa);
            msg.Text = "page created";
        }
        private void createNewVersion()
        {
            this.removePreviewArticle();
            AdvancedArticle aa = (AdvancedArticle)SFGlobal.ObjectManager.GetObject(typeof(AdvancedArticle));

            aa.NodeID      = currentNode.Id;
            aa.TemplateID  = int.Parse(articleTemplateID.SelectedValue);
            aa.Version     = versionCount() + 1;
            aa.Lang        = lang;
            aa.Rank        = rank;
            aa.Title       = title.Text;
            aa.Summary     = summary.Text;
            aa.Keyword     = keywords.Text;
            aa.Body        = body1.Value;
            aa.UserID      = SFGlobal.CurrentUser.ID;
            aa.DateCreated = aa.DateModified = DateTime.Now;
            aa.Publish     = false;
            aa.Active      = true;
            aa.Preview     = false;
            SFGlobal.ObjectManager.PersistChanges(aa);
            loadPage(rank);
            msg.Text = "new version created";
        }
        private void loadPage(int rank, int version)
        {
            this.rank = rank;
            fillPageSelect();
            showPageCount();
            fillVersionSelect(rank);

            //string whereClause = "NodeID == {0} && !Preview && Rank == {1} && Lang == '{2}' && Version == ";
            string whereClause = "NodeID = {0} AND Preview <> 1 AND Rank = {1} AND Lang = '{2}' AND Version = ";

            if (version == 0)
            {
                try
                {
                    int i = (int)dal.execScalar(String.Format("SELECT MAX(version) FROM {0} WHERE nodeID = {1} AND lang = '{3}' AND rank = {2}", dbTable, currentNode.Id, rank, lang));
                    whereClause += i.ToString();
                }
                catch (System.InvalidCastException e)
                {
                    whereClause += "1";
                }
            }
            else
            {
                whereClause += version.ToString();
            }

            whereClause = String.Format(whereClause, currentNode.Id, rank, lang);
            ObjectSet os = SFGlobal.ObjectManager.GetObjectSet(new OPathQuery(typeof(AdvancedArticle), whereClause, ""));

            AdvancedArticle aa = null;

            if (os.Count > 0)
            {
                aa = (AdvancedArticle)os[0];
            }

            if (aa != null)
            {
                title.Text                      = aa.Title;
                summary.Text                    = aa.Summary;
                keywords.Text                   = aa.Keyword;
                body1.Value                     = aa.Body;
                pageSelect.SelectedValue        = rank.ToString();
                versionSelect.SelectedValue     = aa.Version.ToString();
                articleTemplateID.SelectedValue = aa.TemplateID.ToString();
                publishCheck.Checked            = aa.Publish;
                activeCheck.Checked             = aa.Active;
                showPageCount();
                bodyEditContainer.Visible    = true;
                articleEditContainer.Visible = true;
                articleEditHelp.Visible      = false;
                //Page.PageTitle += aa.Title;
                checkActive();
                if (activeCheck.Checked == true)
                {
                    publishCheck.Enabled = true;
                }
            }
            else
            {
                articleEditContainer.Visible = true;
                articleEditHelp.Visible      = true;
                newLanguage.Text             = SFGlobal.DefaultLanguage;
            }
        }