예제 #1
0
        /// <summary>
        /// 获取指定日期的数据
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public static string GetData(DateTime date)
        {
            string key = String.Format("{0:yyyyMMdd}", date);

            if (trafficFile.Contains(key))
            {
                return(trafficFile[key]);
            }
            else
            {
                trafficFile.Add(key, defaultJson);
                trafficFile.Flush();
            }

            //try
            //{
            //    trafficFile["ips"] = String.Empty;
            //}
            //catch
            //{
            //    trafficFile.Append("ips", String.Empty);
            //}

            return(defaultJson);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="workerIndent"></param>
        public PluginPackAttribute(string workerIndent)
        {
            this.WorkIndent = workerIndent;
            bool isChanged = false;
            var  dirPath   = String.Concat(
                AppDomain.CurrentDomain.BaseDirectory,
                PluginConfig.PLUGIN_DIRECTORY,
                workerIndent,
                "/");

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath).Create();
            }

            settings = new SettingFile(string.Concat(dirPath, "plugin.config"));

            if (!settings.Contains("state"))
            {
                settings.Add("state", "Normal");
                isChanged = true;
            }
            if (!settings.Contains("override.url.indent"))
            {
                settings.Add("override.url.indent", "");
                isChanged = true;
            }

            if (isChanged)
            {
                settings.Flush();
            }
        }
예제 #3
0
        public void Save()
        {
            SettingFile sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf", Cms.PyhicPath, this.tplName));

            /**************** 模板设置 ****************/
            if (sf.Contains("CFG_ShowErrror"))
            {
                sf["CFG_ShowErrror"] = this.CFG_ShowError?"true":"false";
            }
            else
            {
                sf.Add("CFG_ShowErrror", this.CFG_ShowError ? "true" : "false");
            }

            if (sf.Contains("CFG_SitemapSplit"))
            {
                sf["CFG_SitemapSplit"] = this.cfg_sitemapSplit;
            }
            else
            {
                sf.Add("CFG_SitemapSplit", this.cfg_sitemapSplit);
            }
            if (sf.Contains("CFG_ArchiveTagsFormat"))
            {
                sf["CFG_ArchiveTagsFormat"] = this.cfg_ArchiveTagsFormat;
            }
            else
            {
                sf.Add("CFG_ArchiveTagsFormat", this.cfg_ArchiveTagsFormat);
            }
            if (sf.Contains("CFG_NavigatorLinkFormat"))
            {
                sf["CFG_NavigatorLinkFormat"] = this.cfg_navigatorLinkFormat;
            }
            else
            {
                sf.Add("CFG_NavigatorLinkFormat", this.cfg_navigatorLinkFormat);
            }
            if (sf.Contains("CFG_NavigatorChildFormat"))
            {
                sf["CFG_NavigatorChildFormat"] = this.cfg_navigatorChildFormat;
            }
            else
            {
                sf.Add("CFG_NavigatorChildFormat", this.cfg_navigatorChildFormat);
            }
            if (sf.Contains("CFG_FriendShowNum"))
            {
                sf["CFG_FriendShowNum"] = this.cfg_friendShowNum.ToString();
            }
            else
            {
                sf.Add("CFG_FriendShowNum", this.cfg_friendShowNum.ToString());
            }
            if (sf.Contains("CFG_FriendLinkFormat"))
            {
                sf["CFG_FriendLinkFormat"] = this.cfg_friendLinkFormat;
            }
            else
            {
                sf.Add("CFG_FriendLinkFormat", this.cfg_friendLinkFormat);
            }
            if (sf.Contains("CFG_TrafficFormat"))
            {
                sf["CFG_TrafficFormat"] = this.cfg_trafficFormat;
            }
            else
            {
                sf.Add("CFG_TrafficFormat", this.cfg_trafficFormat);
            }
            if (sf.Contains("CFG_CommentEditorHtml"))
            {
                sf["CFG_CommentEditorHtml"] = this.cfg_commentEditorHtml;
            }
            else
            {
                sf.Add("CFG_CommentEditorHtml", this.cfg_commentEditorHtml);
            }
            if (sf.Contains("CFG_allowAmousComment"))
            {
                sf["CFG_allowAmousComment"] = this.cfg_allowAmousComment ? "true" : "false";
            }
            else
            {
                sf.Add("CFG_allowAmousComment", this.cfg_allowAmousComment ? "true" : "false");
            }
            if (sf.Contains("CFG_OutlineLength"))
            {
                sf["CFG_OutlineLength"] = this.cfg_outlineLength.ToString();
            }
            else
            {
                sf.Add("CFG_OutlineLength", this.cfg_outlineLength.ToString());
            }
            if (sf.Contains("CFG_ArchiveFormat"))
            {
                sf["CFG_ArchiveFormat"] = this.cfg_archiveFormat;
            }
            else
            {
                sf.Add("CFG_ArchiveFormat", this.cfg_archiveFormat);
            }
            if (sf.Contains("CFG_ArchiveLinkFormat"))
            {
                sf["CFG_ArchiveLinkFormat"] = this.cfg_archiveLinkFormat;
            }
            else
            {
                sf.Add("CFG_ArchiveLinkFormat", this.cfg_archiveLinkFormat);
            }
            if (sf.Contains("CFG_PrevArchiveFormat"))
            {
                sf["CFG_PrevArchiveFormat"] = this.cfg_prevArchiveFormat;
            }
            else
            {
                sf.Add("CFG_PrevArchiveFormat", this.cfg_prevArchiveFormat);
            }
            if (sf.Contains("CFG_NextArchiveFormat"))
            {
                sf["CFG_NextArchiveFormat"] = this.cfg_nextArchiveFormat;
            }
            else
            {
                sf.Add("CFG_NextArchiveFormat", this.cfg_nextArchiveFormat);
            }

            if (sf.Contains("CFG_CategoryLinkFormat"))
            {
                sf["CFG_CategoryLinkFormat"] = this.cfg_categoryLinkFormat;
            }
            else
            {
                sf.Add("CFG_CategoryLinkFormat", this.cfg_categoryLinkFormat);
            }
            sf.Flush();
        }
예제 #4
0
        public InstallCode Process(HttpContext context)
        {
            NameValueCollection form = context.Request.Form;
            string physical          = Cms.PyhicPath;

            if (!Directory.Exists(Cms.PyhicPath + "config"))
            {
                Directory.CreateDirectory(Cms.PyhicPath + "config").Create();
            }

            if (System.IO.File.Exists(String.Concat(physical, INSTALL_LOCK)))
            {
                return(InstallCode.Installed);
            }

            string t_key         = form["t_key"],
                   t_name        = form["t_name"],
                   site_name     = form["site_name"],
                   site_domain   = form["site_domain"],
                   site_language = form["site_language"],
                   user_name     = form["user_name"],
                   user_pwd      = form["user_pwd"],
                   db_type       = form["db_type"],
                   db_server     = form["db_server"],
                   db_prefix     = form["db_prefix"],
                   db_prefix1    = form["db_prefix1"],
                   db_name       = form["db_name"],
                   db_usr        = form["db_usr"],
                   db_pwd        = form["db_pwd"],
                   db_file       = form["db_file"];

            string db_str = "";

            #region 检测数据

            if (String.IsNullOrEmpty(user_name) || String.IsNullOrEmpty(user_pwd))
            {
                return(InstallCode.NO_USER);
            }

            #endregion

            #region 初始化数据库设置

            //数据表前缀
            if (String.IsNullOrEmpty(db_prefix))
            {
                db_prefix = db_prefix1;
            }


            //移动Access或SQLite数据库
            if (db_type == "sqlite")
            {
                if (db_file == "")
                {
                    db_file = "rd_" + StringExtensions.RandomLetters(string.Empty, 5) + ".db";
                }
                else if (db_file.IndexOf(".") == -1)
                {
                    db_file += ".db";
                }
                if (!Directory.Exists(physical + "sqlite.db"))
                {
                    Directory.CreateDirectory(physical + "sqlite.db").Create();
                }

                System.IO.File.Copy(physical + FILE_DB_SQLITE, physical + "sqlite.db/" + db_file, true);
                db_str = "Data Source=$ROOT/sqlite.db/" + db_file;
            }
            else if (db_type == "oledb")
            {
                if (db_file == "")
                {
                    db_file = "rd_" + StringExtensions.RandomLetters(string.Empty, 5) + ".mdb";
                }
                else if (db_file.IndexOf(".") == -1)
                {
                    db_file += ".mdb";
                }

                if (!Directory.Exists(physical + "ole.db"))
                {
                    Directory.CreateDirectory(physical + "ole.db").Create();
                }
                File.Copy(physical + FILE_DB_OLEDB, physical + "ole.db/" + db_file, true);
                db_str = "Data Source=$ROOT/ole.db/" + db_file;
            }
            else
            {
                //数据库资料不全
                if (String.IsNullOrEmpty(db_server) || String.IsNullOrEmpty(db_usr) || String.IsNullOrEmpty(db_name) || String.IsNullOrEmpty(db_prefix))
                {
                    return(InstallCode.DB_ERROR);
                }

                if (db_type == "mysql")
                {
                    db_str = String.Format("server={0};database={1};uid={2};pwd={3};charset=utf8", db_server, db_name, db_usr, db_pwd);
                }
                else if (db_type == "mssql")
                {
                    db_str = String.Format("server={0};database={1};uid={2};pwd={3}", db_server, db_name, db_usr, db_pwd);
                }
                else
                {
                    return(InstallCode.DB_UNKNOWN);
                }
            }

            #endregion

            #region 写入配置

            if (System.IO.File.Exists(physical + FILE_SETTING))
            {
                System.IO.File.Delete(physical + FILE_SETTING);
            }
            SettingFile file = new SettingFile(physical + FILE_SETTING);
            file.Add("license_key", t_key);
            file.Add("license_name", t_name);
            file.Add("server_static", "");
            file.Add("server_static_enabled", "false");

            file.Add("db_type", db_type);
            file.Add("db_conn", db_str);
            file.Add("db_prefix", db_prefix);

            file.Add("mm_avatar_path", "/file/avatar/");
            file.Flush();

            #endregion

            #region 初始化数据库

            if (!ExtraDB(db_type, db_str, db_prefix))
            {
                return(InstallCode.DB_INIT_ERROR);
            }

            #endregion

            #region 初始化数据

            //默认数据为:
            // cms_sites        siteid为1的站点
            // cms_category   默认的about分类
            // cms_usergroup


            //更新默认站点
            this.db.ExecuteNonQuery(new SqlQuery(
                                        String.Format("UPDATE {0}sites SET domain=@domain,name=@name,tpl=@tpl,seotitle=@name where siteid=1", db_prefix),
                                        new object[, ] {
                { "@domain", site_domain },
                { "@name", site_name },
                { "@tpl", "default" }
            }));

            //创建管理用户
            this.db.ExecuteNonQuery(new SqlQuery(
                                        String.Format(@"
                        INSERT INTO {0}users (
                        siteid ,
                        username ,
                        password ,
                        name ,
                        groupid ,
                        available ,
                        createdate ,
                        lastlogindate ) VALUES (0,@username,@password,@name,1,1,@dt,@dt)
                    ", db_prefix),
                                        new object[, ] {
                { "@username", user_name },
                { "@password", StringExtensions.EncodeMD5(StringExtensions.Encode16MD5(user_pwd)) },
                { "@name", "管理员" },
                { "@dt", DateTime.Now }
            }));


            #endregion


            //创建安装文件
            System.IO.File.Create(String.Concat(physical, INSTALL_LOCK));

            Settings.TurnOffDebug();

            Cms.Init();

            // 重启
            HttpRuntime.UnloadAppDomain();
            //AppDomain.Unload(AppDomain.CurrentDomain);

            return(InstallCode.SUCCESS);
        }
예제 #5
0
        /// <summary>
        /// 加载配置文件
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <returns>返回加载消息,如成功返回空</returns>
        internal static string Load(string filePath)
        {
            cmsConfigFile = filePath;

            //从配置文件中加载
            SettingFile sf = new SettingFile(cmsConfigFile);

            Settings.loaded = true;
            bool settingChanged = false;

            //try
            // {
            Settings.License_NAME = sf.Contains("license_name") ? sf["license_name"] : "评估用户";
            Settings.License_KEY  = sf.Contains("license_key") ? sf["license_key"] : String.Empty;
            Settings.SYS_AUTOWWW  = sf.Contains("sys_autowww") ? sf["sys_autowww"] == "true" : false;                    //自动WWW

            #region 读取模板选项

            Settings.TPL_UseFullPath = sf.Contains("tpl_usefullpath") ? sf["tpl_usefullpath"] == "true" : true;
            Settings.TPL_UseCompress = sf.Contains("tpl_usecompress") ? sf["tpl_usecompress"] == "true" : false;


            #endregion

            Settings.DB_TYPE   = sf["db_type"];
            Settings.DB_CONN   = sf["db_conn"];
            Settings.DB_PREFIX = sf["db_prefix"];


            Settings.MM_AVATAR_PATH = sf["mm_avatar_path"];


            /**************** 优化项 ******************/
            Settings.Opti_Debug = WebConfig.IsDebug();

            //缓存项
            if (sf.Contains("opti_IndexCacheSeconds"))
            {
                int.TryParse(sf["opti_IndexCacheSeconds"], out Settings.Opti_IndexCacheSeconds);
            }

            if (sf.Contains("opti_ClientCacheSeconds"))
            {
                int.TryParse(sf["opti_ClientCacheSeconds"], out Settings.Opti_ClientCacheSeconds);
            }

            if (sf.Contains("Opti_GC_Collect_Interval"))
            {
                int.TryParse(sf["Opti_GC_Collect_Interval"], out Settings.Opti_GC_Collect_Interval);
            }


            /**************** 静态服务器 ******************/

            if (sf.Contains("server_static"))
            {
                Settings.SERVER_STATIC = sf["server_static"];
                if (Settings.SERVER_STATIC.Length == 0)
                {
                    Settings.SERVER_STATIC = Server._defaultStaticServer;
                }
            }
            else
            {
                sf.Add("server_static", Server._defaultStaticServer);
                Settings.SERVER_STATIC = Server._defaultStaticServer;
                settingChanged         = true;
            }

            if (sf.Contains("server_static_enabled"))
            {
                Settings.SERVER_STATIC_ENABLED = sf["server_static_enabled"] == "true";
            }
            else
            {
                sf.Add("server_static_enabled", "false");
                settingChanged = true;
            }


            if (sf.Contains("sys_admin_tag"))
            {
                Settings.SYS_ADMIN_TAG = sf["sys_admin_tag"];
            }
            else
            {
                sf.Add("sys_admin_tag", Settings.SYS_ADMIN_TAG);
                settingChanged = true;
            }

            if (settingChanged)
            {
                sf.Flush();
            }


            return(string.Empty);

            /*
             * }
             * catch (Exception ex)
             * {
             * const string strtpl = "配置文件不正确,请检查!位置:{0}。{1}";
             * string _file = filePath.Replace("/", "\\").Replace("\\\\", "\\");
             *
             * return string.Format(strtpl, _file,
             * ex.GetType() == typeof(ArgumentOutOfRangeException) ? "此错误可能因为缺少系统所需的配置而引发。" :
             * string.Empty
             * );
             * }*/
        }
예제 #6
0
        /// <summary>
        /// 更新资料
        /// </summary>
        /// <param name="prefix"></param>
        public static void Update(string prefix)
        {
            SettingFile sf = new SettingFile(cmsConfigFile);

            switch (prefix)
            {
            case "sys":
                sf["license_name"]          = Settings.License_NAME;
                sf["license_key"]           = Settings.License_KEY;
                sf["server_static_enabled"] = Settings.SERVER_STATIC_ENABLED?"true":"false";
                sf["server_static"]         = Settings.SERVER_STATIC;
                sf["sys_admin_tag"]         = Settings.SYS_ADMIN_TAG;

                //301跳转
                if (!sf.Contains("sys_autowww"))
                {
                    sf.Add("sys_autowww", Settings.SYS_AUTOWWW ? "true" : "false");
                }
                else
                {
                    sf["sys_autowww"] = Settings.SYS_AUTOWWW ? "true" : "false";
                }

                //虚拟路径
                //if (!sf.Contains("sys_virthpath"))
                //{
                //    sf.Add("sys_virthpath", Settings.SYS_VIRTHPATH);
                //}
                //else
                //{
                //    sf["sys_virthpath"] = Settings.SYS_VIRTHPATH;
                //}
                break;

            case "db":
                sf["db_prefix"] = Settings.DB_PREFIX;
                break;

            case "tpl":

                //压缩代码
                if (!sf.Contains("tpl_usecompress"))
                {
                    sf.Add("tpl_usecompress", Settings.TPL_UseCompress ? "true" : "false");
                }
                else
                {
                    sf["tpl_usecompress"] = Settings.TPL_UseCompress ? "true" : "false";
                }

                //使用完整路径
                if (!sf.Contains("tpl_usefullpath"))
                {
                    sf.Add("tpl_usefullpath", Settings.TPL_UseFullPath ? "true" : "false");
                }
                else
                {
                    sf["tpl_usefullpath"] = Settings.TPL_UseFullPath ? "true" : "false";
                }


                Cms.Template.Register();

                break;

            //优化
            case "opti":

                WebConfig.SetDebug(Settings.Opti_Debug);

                //缓存项
                if (!sf.Contains("opti_IndexCacheSeconds"))
                {
                    sf.Add("opti_IndexCacheSeconds", Settings.Opti_IndexCacheSeconds.ToString());
                }
                else
                {
                    sf["opti_IndexCacheSeconds"] = Settings.Opti_IndexCacheSeconds.ToString();
                }

                if (!sf.Contains("Opti_GC_Collect_Interval"))
                {
                    sf.Add("Opti_GC_Collect_Interval", Settings.Opti_GC_Collect_Interval.ToString());
                }
                else
                {
                    sf["Opti_GC_Collect_Interval"] = Settings.Opti_GC_Collect_Interval.ToString();
                }

                if (!sf.Contains("opti_ClientCacheSeconds"))
                {
                    sf.Add("opti_ClientCacheSeconds", Settings.Opti_ClientCacheSeconds.ToString());
                }
                else
                {
                    sf["opti_ClientCacheSeconds"] = Settings.Opti_ClientCacheSeconds.ToString();
                }


                break;
            }

            //
            //Version:兼容更新站点
            //
            SiteDto site = Cms.Context.CurrentSite;

            if (site.SiteId > 0)
            {
                if (sf.Contains("idx_title"))
                {
                    site.SeoTitle = sf["idx_title"];
                    sf.Remove("idx_title");
                }
                if (sf.Contains("idx_keywords"))
                {
                    site.SeoKeywords = sf["idx_keywords"];
                    sf.Remove("idx_keywords");
                }
                if (sf.Contains("idx_description"))
                {
                    site.SeoDescription = sf["idx_description"];
                    sf.Remove("idx_description");
                }
                if (sf.Contains("sys_alias"))
                {
                    sf.Remove("sys_alias");
                }
            }

            if (sf.Contains("sys_name"))
            {
                if (sf.Contains("license_name"))
                {
                    sf["license_name"] = sf["sys_name"];
                    sf["license_key"]  = sf["sys_key"];
                }
                else
                {
                    sf.Add("license_name", sf["sys_name"]);
                    sf.Add("license_key", sf["sys_key"]);
                }
                sf.Remove("sys_name");
                sf.Remove("sys_key");
            }

            sf.Flush();
        }