예제 #1
0
        private void CreateSiteMap(CmsSiteEnvironment Environment)
        {
            string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";

            xml += "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"\r\n";
            xml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n";
            xml += "xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9\r\n";
            xml += "http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">\r\n";
            xml += "\r\n";

            System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
            foreach (CmsPage page in Pages)
            {
                if (page.InSiteMap && page.IsActive)
                {
                    xml += String.Format(culture, @"   <url>
        <loc>{0}</loc>
        <lastmod>{1:yyyy-MM-dd}</lastmod>
        <changefreq>{2}</changefreq>
        <priority>{3:0.0}</priority>
    </url>
", Environment.DomainName + page.RelativeUrl, page.ModifiedDate, page.SiteMapChangeFreq, page.SiteMapPriority);
                }
            }
            xml += "</urlset>";
            //opslaan

            Utils.FileHelper.WriteFile(Environment.Path + "\\Sitemap.xml", xml);
        }
예제 #2
0
        public void PublishDataCollection(CmsSiteEnvironment environment)
        {
            DatabaseHelper databaseHelper = new DatabaseHelper();

            databaseHelper.DropDataCollectionEnvironmentTables(this, environment);
            databaseHelper.CloneDataCollectionEnvironmentTables(this, CurrentWorkingEnvironment, environment);
            databaseHelper.InsertEnvironmentDataCollectionInTables(this, CurrentWorkingEnvironment, environment);
        }
예제 #3
0
        private void PublishDataBase(CmsSiteEnvironment environment)
        {
            DatabaseHelper databaseHelper = new DatabaseHelper();

            databaseHelper.DropSiteEnvironmentTables(this, environment);
            databaseHelper.CloneEnvironmentTables(this, CurrentWorkingEnvironment, environment);
            databaseHelper.InsertEnvironmentDataInTables(this, CurrentWorkingEnvironment, environment);
        }
예제 #4
0
        public bool Publish(Guid environmentID, bool cleanUp, bool publishPages,
                            bool publishFilesAndImages, bool publishData, bool publishBin,
                            bool reGenerateSearchIndex, bool reGenerateSitemap)
        {
            CmsSiteEnvironment environment = BaseObject.GetById <CmsSiteEnvironment>(environmentID);

            return(Publish(environment, cleanUp, publishPages, publishFilesAndImages, publishData, publishBin, reGenerateSearchIndex, reGenerateSitemap));
        }
예제 #5
0
        //[NonPersistent()]
        //public string GetBitplateVersion()
        //{
        //    string version = "";
        //    string path = AppDomain.CurrentDomain.BaseDirectory + "\\bin\\VersionNumber.txt";
        //    if (File.Exists(path))
        //    {
        //        version = File.ReadAllText(path);
        //    }
        //    if (version == "")
        //    {
        //        version = "Assembly: V" + Assembly.GetExecutingAssembly().GetName().Version.ToString();
        //    }
        //    return version;
        //}

        private CmsSiteEnvironment GetWorkingEnvironment()
        {
            CmsSiteEnvironment returnValue = null;

            //eerste editable omgeving wordt standaard
            string where = String.Format("FK_Site='{0}' AND SiteEnvironmentType={1}", this.ID, (int)SiteEnvironmentTypeEnum.Editable);
            returnValue  = BaseObject.GetFirst <CmsSiteEnvironment>(where);
            return(returnValue);
        }
예제 #6
0
 private void PublishFiles(CmsSiteEnvironment Environment, bool cleanup)
 {
     if (cleanup)
     {
         //eerst alles weggooien
         Utils.FileHelper.DeleteFilesFromDirectory(Environment.Path + "\\_files", "", true);
         Utils.FileHelper.DeleteDir(Environment.Path + "\\_files");
     }
     Utils.FileHelper.CopyDir(this.CurrentWorkingEnvironment.Path + "\\_files", Environment.Path + "\\_files");
 }
예제 #7
0
        public void CreateRobotsTxt(CmsSiteEnvironment Environment)
        {
            string txt = "User-agent: *\r\n";

            foreach (CmsPage page in Pages)
            {
                if (page.DisallowRobots && page.IsActive && page.RelativeUrl != null)
                {
                    txt += "Disallow: " + page.RelativeUrl + "\r\n";
                }
            }

            Utils.FileHelper.WriteFile(Environment.Path + "\\Robots.txt", txt);
        }
예제 #8
0
 private void PublishBinAndBitplate(CmsSiteEnvironment Environment)
 {
     Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path + "\\bin", Environment.Path + "\\bin", "*.xml|*.dll", false, false);
     Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path + "\\_js", Environment.Path + "\\_js", "*.xml|*.js", false, false);
     if (Environment.SiteEnvironmentType == SiteEnvironmentTypeEnum.Editable)
     {
         //heel bitplate copieren
         Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path + "\\_bitplate", Environment.Path + "\\_bitplate", "*.*", false, true);
     }
     FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\Page.aspx", Environment.Path + "\\Page.aspx");
     FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\Newsletter.aspx", Environment.Path + "\\Newsletter.aspx");
     //FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\Captcha.aspx", Environment.Path + "\\Captcha.aspx");
     FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\script.handler", Environment.Path + "\\script.handler");
     FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\Global.asax", Environment.Path + "\\Global.asax");
 }
예제 #9
0
        private void PublishPages(CmsSiteEnvironment Environment, bool cleanup)
        {
            string[] directories;
            if (cleanup)
            {
                //eerst weggooien
                Utils.FileHelper.DeleteFilesFromDirectory(Environment.Path, "*.aspx", false);
                Utils.FileHelper.DeleteFilesFromDirectory(Environment.Path, "*.master", false);
                Utils.FileHelper.DeleteFilesFromDirectory(Environment.Path + "\\_moduleUserControls", "*.ascx", false);
                Utils.FileHelper.DeleteFile(Environment.Path + "\\global.asax");


                directories = System.IO.Directory.GetDirectories(Environment.Path);
                foreach (string path in directories)
                {
                    string dir = System.IO.Path.GetFileName(path); //bij een dir geeft GetFileName de naam van de dir terug
                    if (!(dir.StartsWith("_") || dir.StartsWith("!") || dir == "bin" || dir == "obj" || dir == "Properties" || dir == "WebUserControls" || dir == "aspnet_client"))
                    {
                        Utils.FileHelper.DeleteFilesFromDirectory(path, "", true);
                        Utils.FileHelper.DeleteDir(path);
                    }
                }
            }
            //daarna kopieren
            Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path, Environment.Path, "*.aspx", false, false);
            Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path, Environment.Path, "*.master", false, false);
            Utils.FileHelper.CopyDir(CurrentWorkingEnvironment.Path + "\\_moduleUserControls", Environment.Path + "\\_moduleUserControls", "*.ascx", false, false);
            if (Environment.SiteEnvironmentType == SiteEnvironmentTypeEnum.Editable)
            {
                Utils.FileHelper.CopyFile(CurrentWorkingEnvironment.Path + "\\global.asax", Environment.Path + "\\global.asax");
            }

            directories = System.IO.Directory.GetDirectories(CurrentWorkingEnvironment.Path);
            foreach (string path in directories)
            {
                if (path == Environment.Path)
                {
                    continue;
                }
                string dir = System.IO.Path.GetFileName(path); //bij een dir geeft GetFileName de naam van de dir terug
                if (!(dir.StartsWith("_") || dir.StartsWith("!") || dir == "bin" || dir == "obj" || dir == "Properties" || dir == "WebUserControls" || dir == "aspnet_client"))
                {
                    Utils.FileHelper.CopyDir(path, Environment.Path + "\\" + dir, "*.aspx", false, true);
                }
            }
        }
예제 #10
0
        private void CreateSearchIndex(CmsSiteEnvironment ToEnvironment)
        {
            Search.SearchHelper.FillSearchIndex(this);

            CmsSiteEnvironment FromEnvironment = CurrentWorkingEnvironment;

            if (!FromEnvironment.Equals(ToEnvironment))
            {
                //zet om naar live database
                //create
                string sql = String.Format(@"CREATE TABLE IF NOT EXISTS {0}.searchindex LIKE {1}.searchindex;", ToEnvironment.DatabaseName, FromEnvironment.DatabaseName);
                DataBase.Get().Execute(sql);

                //delete
                sql = String.Format(@"DELETE FROM {0}.searchindex WHERE FK_Site='{1}';", ToEnvironment.DatabaseName, this.ID);
                DataBase.Get().Execute(sql);
                //insert
                sql = String.Format(@"INSERT INTO {0}.searchindex SELECT * FROM {1}.searchindex WHERE FK_Site='{2}';", ToEnvironment.DatabaseName, FromEnvironment.DatabaseName, this.ID);
                DataBase.Get().Execute(sql);
            }
        }
예제 #11
0
        private void CreateWebConfig(CmsSiteEnvironment environment)
        {
            string webConfigContent = environment.CreateWebConfig(this.DomainName);

            Utils.FileHelper.WriteFile(environment.Path + "\\Web.config", webConfigContent);
        }
예제 #12
0
        public bool Publish(CmsSiteEnvironment ToEnvironment, bool cleanUp, bool publishPages,
                            bool publishFilesAndImages, bool publishData, bool publishBin,
                            bool reGenerateSearchIndex, bool reGenerateSitemap)
        {
            CmsSiteEnvironment FromEnvironment = CurrentWorkingEnvironment;

            if (!FromEnvironment.Equals(ToEnvironment))
            {
                if (!System.IO.Directory.Exists(ToEnvironment.Path))
                {
                    System.IO.Directory.CreateDirectory(ToEnvironment.Path);
                }

                if (publishPages)
                {
                    FileHelper.EmptySiteDirectory(ToEnvironment.Path, publishFilesAndImages);
                    PublishDataBase(ToEnvironment);
                }

                if ((!Directory.Exists(ToEnvironment.Path + "\\bin") || publishBin))
                {
                    PublishBinAndBitplate(ToEnvironment);
                }

                if (!File.Exists(ToEnvironment.Path + "\\web.config") || publishBin)
                {
                    CreateWebConfig(ToEnvironment);
                }

                if (publishFilesAndImages)
                {
                    PublishFiles(ToEnvironment, false);
                }

                if (publishData)
                {
                    PublishDataCollection(ToEnvironment);
                }


                //if (publishData)
                //{
                //    PublishDataBase(ToEnvironment, cleanUp);
                //}
                //if (publishBin)
                //{
                //    PublishBinAndBitplate(ToEnvironment);
                //}
                //if (publishFilesAndImages)
                //{
                //    PublishFiles(ToEnvironment, cleanUp);
                //}
                //if (publishPages)
                //{
                //    PublishScripts(ToEnvironment, cleanUp);
                //    PublishPages(ToEnvironment, cleanUp);
                //}
            }

            if (reGenerateSearchIndex)
            {
                CreateSearchIndex(ToEnvironment);
            }
            if (reGenerateSitemap)
            {
                CreateSiteMap(ToEnvironment);
                CreateRobotsTxt(ToEnvironment);
            }


            return(true);
        }