/// <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(); } }
public static void InitWeixin(SettingFile set) { Variables.Token = set["Weixin_Token"]; Variables.AppId = set["Weixin_AppId"]; Variables.AppSecret = set["Weixin_AppSecret"]; Variables.AppEncodeString = set["Weixin_AppEncodeString"]; Variables.ApiDomain = set["Weixin_ApiDomain"]; Variables.MenuButtons = set["Weixin_MenuButtons"]; Variables.WxWelcomeMessage = set["Weixin_WelcomeMessage"] ?? ""; Variables.WxEnterMessage = set["Weixin_EnterMessage"] ?? ""; Variables.WxDefaultResponseMessage = set["Weixin_DefaultResponseMessage"]??""; }
/// <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.Set("server_static",Server.DefaultStaticServer); Settings.SERVER_STATIC=Server.DefaultStaticServer; settingChanged=true; } if (sf.Contains("server_upgrade")) { Settings.SERVER_UPGRADE = sf["server_upgrade"]; if (Settings.SERVER_UPGRADE.Length == 0) { Settings.SERVER_UPGRADE = Server.DefaultUpgradeServer; } } else { sf.Set("server_upgrade", Server.DefaultUpgradeServer); Settings.SERVER_UPGRADE = Server.DefaultUpgradeServer; settingChanged = true; } if(sf.Contains("server_static_enabled")) { Settings.SERVER_STATIC_ENABLED=sf["server_static_enabled"]=="true"; } else { sf.Set("server_static_enabled", "false"); settingChanged=true; } if(sf.Contains("sys_admin_tag")) { Settings.SYS_ADMIN_TAG=sf["sys_admin_tag"]; } else { sf.Set("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 ); }*/ }
/// <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.Set("sys_autowww", Settings.SYS_AUTOWWW ? "true" : "false"); } else { sf["sys_autowww"] = Settings.SYS_AUTOWWW ? "true" : "false"; } //虚拟路径 //if (!sf.Contains("sys_virthpath")) //{ // sf.Set("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.Set("tpl_usecompress", Settings.TPL_UseCompress ? "true" : "false"); } else { sf["tpl_usecompress"] = Settings.TPL_UseCompress ? "true" : "false"; } //使用完整路径 if (!sf.Contains("tpl_usefullpath")) { sf.Set("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.Set("opti_IndexCacheSeconds", Settings.Opti_IndexCacheSeconds.ToString()); } else { sf["opti_IndexCacheSeconds"] = Settings.Opti_IndexCacheSeconds.ToString(); } if (!sf.Contains("Opti_GC_Collect_Interval")) { sf.Set("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.Set("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.Set("license_name", sf["sys_name"]); sf.Set("license_key", sf["sys_key"]); } sf.Remove("sys_name"); sf.Remove("sys_key"); } sf.Flush(); }
/// <summary> /// 获取模板 /// </summary> /// <returns></returns> public static IDictionary<string, string> GetTemplates() { IDictionary<string, string> dict = new Dictionary<string, string>(); string[] tpls; string tplRootPath = String.Format("{0}templates/", AppDomain.CurrentDomain.BaseDirectory); DirectoryInfo dir = new DirectoryInfo(tplRootPath); DirectoryInfo[] dirs=dir.GetDirectories(); tpls = new string[dirs.Length]; if (dir.Exists) { int i = -1; foreach (DirectoryInfo d in dirs) { if ((d.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { tpls[++i] = d.Name; } } } SettingFile sf; string tplConfigFile, tplName; foreach (string key in tpls) { tplName = key; tplConfigFile = String.Format("{0}{1}/tpl.conf", tplRootPath, key); if (global::System.IO.File.Exists(tplConfigFile)) { sf = new SettingFile(tplConfigFile); if (sf.Contains("name")) { tplName = sf["name"]; } //if (sf.Contains("thumbnail")) //{ // tplThumbnail = sf["thumbnail"]; //} } if (!String.IsNullOrEmpty(key)) { dict.Add(key, tplName); } } return dict; }
public InstallCode Process(HttpContext context) { NameValueCollection form = context.Request.Form; string physical = AtNet.Cms.Cms.PyhicPath; if (!Directory.Exists(AtNet.Cms.Cms.PyhicPath + "config")) { Directory.CreateDirectory(AtNet.Cms.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_"+string.Empty.RandomLetters(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_" + string.Empty.RandomLetters(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}site 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}user ( 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", user_pwd.Encode16MD5().EncodeMD5()}, {"@name","系统管理员"}, {"@dt",DateTime.Now} })); #endregion //创建安装文件 System.IO.File.Create(String.Concat(physical, INSTALL_LOCK)); Settings.TurnOffDebug(); AtNet.Cms.Cms.Init(); // 重启 HttpRuntime.UnloadAppDomain(); //AppDomain.Unload(AppDomain.CurrentDomain); return InstallCode.SUCCESS; }
public string Label(string key) { const string cacheKey = "setting_cache_001"; if (this._settingsFile == null) { //读取数据 this._settingsFile = AtNet.Cms.Cms.Cache.Get(cacheKey) as SettingFile; if (this._settingsFile == null) { string phyPath = AppDomain.CurrentDomain.BaseDirectory + settingsFile; this._settingsFile = new SettingFile(phyPath); //缓存数据 AtNet.Cms.Cms.Cache.Insert(cacheKey, this._settingsFile, phyPath); } } return this._settingsFile[key]; }
public void Dispose() { _settingsFile = null; }
/// <summary> /// 模板列表 /// </summary> public void Templates_GET() { if (UserState.Administrator.Current.Group != UserGroups.Master) return; string curTemplate = base.CurrentSite.Tpl; string tplRootPath=String.Format("{0}templates/",AppDomain.CurrentDomain.BaseDirectory); string[] tplList = new string[0]; DirectoryInfo dir = new DirectoryInfo(tplRootPath); if (dir.Exists) { DirectoryInfo[] dirs = dir.GetDirectories(); tplList = new string[dirs.Length]; int i = -1; foreach (DirectoryInfo d in dirs) { tplList[++i] = d.Name; } } SettingFile sf; string currentName="", currentThumbnail="", tplConfigFile, tplName, tplDescrpt, tplThumbnail; StringBuilder sb = new StringBuilder(); foreach (string tpl in tplList) { tplName = tpl; tplThumbnail = null; tplDescrpt = null; tplConfigFile = String.Format("{0}{1}/tpl.conf", tplRootPath, tpl); if (global::System.IO.File.Exists(tplConfigFile)) { sf = new SettingFile(tplConfigFile); if (sf.Contains("name")) { tplName = sf["name"]; } if (sf.Contains("thumbnail")) { tplThumbnail = sf["thumbnail"]; } if (sf.Contains("descript")) { tplDescrpt = sf["descript"]; } } if (String.Compare(tpl, curTemplate , false) != 0) { sb.Append("<li><p><a href=\"javascript:;\">"); if (tplThumbnail != null) { sb.Append("<img src=\"").Append(tplThumbnail).Append("\" alt=\"点击切换模板\" class=\"shot ").Append(tpl).Append("\"/>"); } else { sb.Append("<span title=\"点击切换模板\" class=\"shot ").Append(tpl).Append(" thumbnail\">无缩略图</span>"); } sb.Append("</a></p><p><a href=\"javascript:;\" class=\"t\">") .Append(tplName).Append("</a></p><p><a class=\"btn edit\" href=\"tpl:") .Append(tpl).Append("\">编辑</a> <a class=\"btn down\" href=\"tpl:") .Append(tpl).Append("\">下载</a></p>") .Append("<p class=\"hidden\">").Append(tplDescrpt).Append("</p>") .Append("</li>"); } else { currentName = String.IsNullOrEmpty(tplName) ? curTemplate : tplName; if (tplThumbnail != null) { currentThumbnail="<img src=\""+tplThumbnail+"\" alt=\"点击切换模板\" class=\"shot1 "+tpl+"\"/>"; } else { currentThumbnail="<span class=\"shot1 "+tpl+" thumbnail\">无缩略图</span>"; } } } base.RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Template_Manager), new { list=sb.ToString(), current = curTemplate, currentName=currentName, currentThumbnail=currentThumbnail }); }
public TemplateSetting(string tpl) { this.tplName = tpl; sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf", AppDomain.CurrentDomain.BaseDirectory, tpl)); #region 获取设置 if(sf.Contains("CFG_ShowError")) { this.cfg_showError = sf["CFG_ShowError"]=="true"; } if (sf.Contains("CFG_SitemapSplit")) { this.cfg_sitemapSplit = sf["CFG_SitemapSplit"]; } if (sf.Contains("CFG_ArchiveTagsFormat")) { this.cfg_ArchiveTagsFormat = sf["CFG_ArchiveTagsFormat"]; } if (sf.Contains("CFG_NavigatorLinkFormat")) { this.cfg_navigatorLinkFormat = sf["CFG_NavigatorLinkFormat"]; } if (sf.Contains("CFG_NavigatorChildFormat")) { this.cfg_navigatorChildFormat= sf["CFG_NavigatorChildFormat"]; } if (sf.Contains("CFG_FriendShowNum")) { int.TryParse(sf["CFG_FriendShowNum"], out this.cfg_friendShowNum); } if (sf.Contains("CFG_OutlineLength")) { int.TryParse(sf["CFG_OutlineLength"], out this.cfg_outlineLength); } if (sf.Contains("CFG_FriendLinkFormat")) { this.cfg_friendLinkFormat= sf["CFG_FriendLinkFormat"]; } if (sf.Contains("CFG_TrafficFormat")) { this.cfg_trafficFormat = sf["CFG_TrafficFormat"]; } if (sf.Contains("CFG_CommentEditorHtml")) { this.cfg_commentEditorHtml = sf["CFG_CommentEditorHtml"]; } if (sf.Contains("CFG_allowAmousComment")) { this.cfg_allowAmousComment= sf["CFG_allowAmousComment"] == "true"; } if (sf.Contains("CFG_ArchiveFormat")) { this.cfg_archiveFormat = sf["CFG_ArchiveFormat"]; } if (sf.Contains("CFG_PrevArchiveFormat")) { this.cfg_prevArchiveFormat= sf["CFG_PrevArchiveFormat"]; } if (sf.Contains("CFG_NextArchiveFormat")) { this.cfg_nextArchiveFormat = sf["CFG_NextArchiveFormat"]; } if (sf.Contains("CFG_ArchiveLinkFormat")) { this.cfg_archiveLinkFormat= sf["CFG_ArchiveLinkFormat"]; } if (sf.Contains("CFG_CategoryLinkFormat")) { this.cfg_categoryLinkFormat = sf["CFG_CategoryLinkFormat"]; } sf = null; #endregion }
public void Save() { SettingFile sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf",AtNet.Cms.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(); }