/// <summary> /// 終了処理 /// </summary> public void Dispose() { if (Setting != null) { Setting.Dispose(); Setting = null; } if (Drug != null) { Drug.Dispose(); Drug = null; } if (Alarm != null) { Alarm.Dispose(); Alarm = null; } if (_Realarms != null) { _Realarms.ForEach(realarm => { realarm.Dispose(); }); _Realarms.Clear(); _Realarms = null; } }
private static IDictionary <string, TemplateSetting> LoadFromDirectory(string rootDirPath) { IDictionary <string, TemplateSetting> dict; DirectoryInfo dir = new DirectoryInfo(rootDirPath); DirectoryInfo[] dirs = dir.GetDirectories(); dict = new Dictionary <string, TemplateSetting>(dirs.Length); if (!dir.Exists) { return(dict); } foreach (DirectoryInfo d in dirs) { if ((d.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { String tplConfigFile = String.Format("{0}{1}/tpl.conf", rootDirPath, d.Name); if (!File.Exists(tplConfigFile)) { SettingFile sf = new SettingFile(tplConfigFile); sf.Set("name", d.Name); sf.Flush(); } TemplateSetting ts = new TemplateSetting(d.Name, tplConfigFile); ts.CfgEnabledMobiPage = Directory.Exists(String.Format("{0}{1}/_mobile_", rootDirPath, d.Name)); dict.Add(d.Name, ts); } } return(dict); }
private static IDictionary <string, TemplateSetting> LoadFromDirectory(string rootDirPath) { var dir = new DirectoryInfo(rootDirPath); var dirs = dir.GetDirectories(); IDictionary <string, TemplateSetting> dict = new Dictionary <string, TemplateSetting>(dirs.Length); if (!dir.Exists) { return(dict); } foreach (var d in dirs) { if ((d.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { var tplConfigFile = $"{rootDirPath}{d.Name}/tpl.conf"; if (!File.Exists(tplConfigFile)) { var sf = new SettingFile(tplConfigFile); sf.Set("name", d.Name); sf.Flush(); } var ts = new TemplateSetting(d.Name, tplConfigFile) { CfgEnabledMobiPage = Directory.Exists($"{rootDirPath}{d.Name}/_mobile_") }; dict.Add(d.Name, ts); } } return(dict); }
public void Save() { SettingFile sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf", Cms.PyhicPath, this._tplDirName)); /**************** 模板设置 ****************/ sf.Set("TPL_NAME", this.tplName); sf.Set("CFG_ShowErrror", this.CfgShowError ? "true" : "false"); sf.Set("CFG_SitemapSplit", this._cfgSitemapSplit); sf.Set("CFG_ArchiveTagsFormat", this._cfgArchiveTagsFormat); sf.Set("CFG_NavigatorLinkFormat", this._cfgNavigatorLinkFormat); sf.Set("CFG_NavigatorChildFormat", this._cfgNavigatorChildFormat); sf.Set("CFG_FriendShowNum", this._cfgFriendShowNum.ToString()); sf.Set("CFG_FriendLinkFormat", this._cfgFriendLinkFormat); sf.Set("CFG_TrafficFormat", this._cfgTrafficFormat); sf.Set("CFG_CommentEditorHtml", this._cfgCommentEditorHtml); sf.Set("CFG_allowAmousComment", this._cfgAllowAmousComment ? "true" : "false"); sf.Set("CFG_OutlineLength", this._cfgOutlineLength.ToString()); sf.Set("CFG_ArchiveFormat", this._cfgArchiveFormat); sf.Set("CFG_ArchiveLinkFormat", this._cfgArchiveLinkFormat); sf.Set("CFG_PrevArchiveFormat", this._cfgPrevArchiveFormat); sf.Set("CFG_NextArchiveFormat", this._cfgNextArchiveFormat); sf.Set("CFG_CategoryLinkFormat", this._cfgCategoryLinkFormat); sf.Set("CFG_EnabledMobiPage", this._cfgEnabledMobiPage ? "true" : "false"); sf.Flush(); }
/// <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(PluginSettingKeys.State)) { settings.Set(PluginSettingKeys.State, "Normal"); isChanged = true; } if (!settings.Contains(PluginSettingKeys.OverrideUrlIndent)) { settings.Set(PluginSettingKeys.OverrideUrlIndent, ""); isChanged = true; } if (isChanged) { settings.Flush(); } }
public void SaveTemplateNames(string json) { SettingFile sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf", Cms.PyhicPath, this._tplDirName)); sf.Set("TPL_NAMES", json); sf.Flush(); }
private static int GetInt(SettingFile s, string key) { if (!s.Contains(key)) { return(0); } int.TryParse(s[key], out var value); return(value); }
public IDictionary <string, string> GetNameDictionary() { SettingFile sf = new SettingFile(String.Format("{0}templates/{1}/tpl.conf", Cms.PyhicPath, this._tplDirName)); String json; if (!sf.Contains("TPL_NAMES") || String.IsNullOrEmpty((json = sf.Get("TPL_NAMES")))) { return(new Dictionary <string, string>()); } return(JsonConvert.DeserializeObject <Dictionary <String, String> >(json)); }
public static void EndWrite() { sf.Flush(); if (Settings.SYS_ENCODE_CONF_FILE) { FileEncoder.EncodeFile(CmsConfigFile, CmsConfigFile, CmsVariables.FileEncodeHeader, CmsVariables.FileEncodeToken); } sf = null; }
public MouseController( SettingFile setting, SynchroGazerVolatileSetting volatileSetting, SynchroGazerStatus status ) { _setting = setting; _volatileSetting = volatileSetting; _status = status; _status.BlinkActionHappened += OnBlinkAction; }
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"] ?? ""; }
public ConfigItem(string filePath) { this._filePath = filePath.Replace("\\", "/"); if (FileNameParttner.IsMatch(this._filePath)) { bool isExists = File.Exists(this._filePath); this._file = new SettingFile(this._filePath); if (isExists) { this.Deserialize(); } } }
/// <summary> /// 获取模板 /// </summary> /// <returns></returns> public static IDictionary <string, string> GetTemplates() { IDictionary <string, string> dict = new Dictionary <string, string>(); var tplRootPath = $"{EnvUtil.GetBaseDirectory()}/templates/"; var dir = new DirectoryInfo(tplRootPath); var dirs = dir.GetDirectories(); var tpls = new string[dirs.Length]; if (dir.Exists) { var i = -1; foreach (var d in dirs) { if ((d.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { tpls[++i] = d.Name; } } } SettingFile sf; string tplConfigFile, tplName; foreach (var key in tpls) { tplName = key; tplConfigFile = string.Format("{0}{1}/tpl.conf", tplRootPath, key); if (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); }
/// <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); }
protected void Button1_Click(object sender, EventArgs e) { SettingFile settings = new SettingFile(); for (int i = 0; i < 10; i++) { Dictionary <string, object> dic = new Dictionary <string, object>(); dic.Add("name", "名称" + i.ToString()); dic.Add("img", "img" + i.ToString()); settings.Items.Add(dic); } SettingFileService.SaveFile("c:\\1.xml", settings); }
private static void ReflushSetting(MenuFull_ButtonGroup menu) { String json = JsonConvert.SerializeObject(menu); SettingFile st = Config.PluginAttr.Settings; json = json.Replace(",\"sub_button\":null", "") .Replace(",\"url\":null", "") .Replace(",\"key\":null", "") .Replace("\"type\":null,", ""); st["Weixin_MenuButtons"] = json; st.Flush(); Variables.MenuButtons = json; _buttonGroup = menu; }
public static void Save(IEnumerable <InfoSetting> list, string path, string filterName, Canvas canvas) { var data = new SettingFile() { Name = path, Canvas = canvas, Content = list }; var setting = JsonConvert.SerializeObject(data); File.WriteAllText(path, setting); InfoShower.ShowOnce(new InfoShower() { Title = "已保存", Info = path, TitleColor = Color.Green }); }
public static void BeginWrite() { bool isEncoded = FileEncoder.IsEncoded(CmsConfigFile, CmsVariables.FileEncodeHeader); if (isEncoded) { FileEncoder.DecodeFile(CmsConfigFile, CmsConfigFile, CmsVariables.FileEncodeHeader, CmsVariables.FileEncodeToken); } sf = new SettingFile(CmsConfigFile); if (isEncoded) { FileEncoder.EncodeFile(CmsConfigFile, CmsConfigFile, CmsVariables.FileEncodeHeader, CmsVariables.FileEncodeToken); } }
internal static void LoadRelatedIndent() { string relatedConf = String.Format("{0}{1}related_indent.conf", Cms.PyhicPath, CmsVariables.SITE_CONF_PATH); bool isExists = File.Exists(relatedConf); SettingFile sf = new SettingFile(relatedConf); var isModify = false; var isLoaded = false; IDictionary <int, RelateIndent> relatedIndents = ServiceCall.Instance.ContentService.GetRelatedIndents(); IDictionary <int, RelateIndent> newIndents = new Dictionary <int, RelateIndent>(relatedIndents.Count); String key; String value; foreach (var relatedIndent in relatedIndents) { key = relatedIndent.Key.ToString(); if (isExists && sf.Contains(key)) { value = sf.Get(key); isLoaded = true; } else { value = relatedIndent.Value.ToString(); sf.Set(key, value); isModify = true; } newIndents.Add(relatedIndent.Key, new RelateIndent(value)); } if (isModify) { sf.Flush(); } if (isLoaded) { ServiceCall.Instance.ContentService.SetRelatedIndents(newIndents); } }
public StatusViewModel(SettingFile setting) { _setting = setting; if (!DesignerProperties.GetIsInDesignMode(Application.Current.MainWindow)) { Status = new SynchroGazerStatus(); } VolatileSetting = new SynchroGazerVolatileSetting(); ShowLargeMarkAlways = _setting.Setting.ShowLargeMarkAlways; ShowFixTargetMark = (_setting.Setting.ShowFixTargetMark && Status.FixDisplayPosition); ShowAnimationFeedback = _setting.Setting.ShowAnimationFeedback; Status.PropertyChanged += OnStatusChanged; _setting.FileSaved += OnSettingChanged; _setting.SettingFileContentChanged += OnSettingChanged; }
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 (File.Exists(String.Concat(physical, INSTALL_LOCK))) { return(InstallCode.INSTALLED); } string licenceKey = form["licence_key"].Trim(), licenceName = form["licence_name"].Trim(), siteName = form["site_name"].Trim(), siteDomain = form["site_domain"].Trim(), siteLanguage = form["site_language"], userName = form["user_name"].Trim(), userPwd = form["user_pwd"].Trim(), dbType = form["db_type"].Trim(), dbServer = form["db_server"].Trim(), dbPrefix = form["db_prefix"].Trim(), dbPrefix1 = form["db_prefix1"].Trim(), dbName = form["db_name"].Trim(), dbUsr = form["db_usr"].Trim(), dbPwd = form["db_pwd"].Trim(), dbFile = form["db_file"].Trim(); string dbStr = ""; #region 检测数据 if (String.IsNullOrEmpty(licenceName) || String.IsNullOrEmpty(licenceKey)) { return(InstallCode.NO_LICENCE); } if (String.IsNullOrEmpty(siteName)) { return(InstallCode.NO_SITE_NAME); } if (String.IsNullOrEmpty(userName) || String.IsNullOrEmpty(userPwd)) { return(InstallCode.NO_USER); } #endregion #region 初始化数据库设置 //数据表前缀 if (String.IsNullOrEmpty(dbPrefix)) { dbPrefix = dbPrefix1; } const String dbDirName = "data"; //移动Access或SQLite数据库 if (dbType == "sqlite") { if (dbFile == "") { dbFile = "rd_" + string.Empty.RandomLetters(5) + ".db"; } else if (dbFile.IndexOf(".", StringComparison.Ordinal) == -1) { dbFile += ".db"; } if (!Directory.Exists(physical + dbDirName)) { Directory.CreateDirectory(physical + dbDirName).Create(); } dbStr = "Data Source=$ROOT/" + dbDirName + "/" + dbFile; } else if (dbType == "oledb") { if (dbFile == "") { dbFile = "rd_" + string.Empty.RandomLetters(5) + ".mdb"; } else if (dbFile.IndexOf(".", StringComparison.Ordinal) == -1) { dbFile += ".mdb"; } if (!Directory.Exists(physical + dbDirName)) { Directory.CreateDirectory(physical + dbDirName).Create(); } File.Copy(physical + FILE_DB_OLEDB, physical + dbDirName + "/" + dbFile, true); dbStr = "Data Source=$ROOT/" + dbDirName + "/" + dbFile; } else { //数据库资料不全 if (String.IsNullOrEmpty(dbServer) || String.IsNullOrEmpty(dbUsr) || String.IsNullOrEmpty(dbName) || String.IsNullOrEmpty(dbPrefix)) { return(InstallCode.DB_ERROR); } if (dbType == "mysql") { dbStr = String.Format("server={0};database={1};uid={2};pwd={3};charset=utf8", dbServer, dbName, dbUsr, dbPwd); } else if (dbType == "mssql") { dbStr = String.Format("server={0};database={1};uid={2};pwd={3}", dbServer, dbName, dbUsr, dbPwd); } else { return(InstallCode.DB_UNKNOWN); } } #endregion #region 写入配置 if (File.Exists(physical + FILE_SETTING)) { File.Delete(physical + FILE_SETTING); } SettingFile file = new SettingFile(physical + FILE_SETTING); file.Set("license_key", licenceKey); file.Set("license_name", licenceName); file.Set("server_static", ""); file.Set("server_static_enabled", "false"); file.Set("db_type", dbType); file.Set("db_conn", dbStr); file.Set("db_prefix", dbPrefix); file.Set("mm_avatar_path", "/file/avatar/"); file.Flush(); #endregion #region 初始化数据库 if (!ExtraDB(dbType, dbStr, dbPrefix)) { 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,language=@language,seo_title=@name where site_id=1", dbPrefix), new object[, ] { { "@domain", siteDomain }, { "@name", siteName }, { "@tpl", "default" }, { "@language", siteLanguage }, })); //创建管理用户 DateTime dt = DateTime.Now; this.db.ExecuteNonQuery(new SqlQuery( String.Format(@"INSERT INTO {0}user(name,avatar,phone,email, check_code,flag,create_time,last_login_time) VALUES(@name,@avatar,@phone,@email,@checkCode,@flag,@time,@time)", dbPrefix), new object[, ] { { "@name", "管理员" }, { "@avatar", "/public/mui/css/latest/avatar.gif" }, { "@phone", "" }, { "@email", "" }, { "@checkCode", "" }, { "@flag", Role.Master.Flag }, { "@time", dt }, })); int userId = int.Parse(this.db.ExecuteScalar(String.Format("SELECT max(id) FROM {0}user", dbPrefix)).ToString()); this.db.ExecuteNonQuery(new SqlQuery( String.Format(@"INSERT INTO {0}credential(user_id,user_name,password,enabled)VALUES(@userId,@userName,@password,1)", dbPrefix), new object[, ] { { "@userId", userId }, { "@userName", userName }, { "@password", Generator.Sha1Pwd(userPwd, Generator.Offset) }, })); #endregion //创建安装文件 File.Create(String.Concat(physical, INSTALL_LOCK)); Settings.TurnOffDebug(); Cms.Init(BootFlag.Normal, null); // 重启 HttpRuntime.UnloadAppDomain(); //AppDomain.Unload(AppDomain.CurrentDomain); return(InstallCode.SUCCESS); }
/// <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.Append("sys_autowww", Settings.SYS_AUTOWWW ? "true" : "false"); } else { sf["sys_autowww"] = Settings.SYS_AUTOWWW ? "true" : "false"; } //虚拟路径 //if (!sf.Contains("sys_virthpath")) //{ // sf.Append("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.Append("tpl_usecompress", Settings.TPL_UseCompress ? "true" : "false"); } else { sf["tpl_usecompress"] = Settings.TPL_UseCompress ? "true" : "false"; } //使用完整路径 if (!sf.Contains("tpl_usefullpath")) { sf.Append("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.Append("opti_IndexCacheSeconds", Settings.Opti_IndexCacheSeconds.ToString()); } else { sf["opti_IndexCacheSeconds"] = Settings.Opti_IndexCacheSeconds.ToString(); } if (!sf.Contains("Opti_GC_Collect_Interval")) { sf.Append("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.Append("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.Append("license_name", sf["sys_name"]); sf.Append("license_key",sf["sys_key"]); } sf.Remove("sys_name"); sf.Remove("sys_key"); } sf.Flush(); }
/// <summary>Replace whatever faction are in the receiver by those of this editor</summary> public void ReplaceFactionToWrite(SSModWritable receiver) { if (Factions == null) { throw new InvalidOperationException("no factions merged"); } IEnumerable <SSFactionGroup> OldFactions = from ISSWritable w in receiver.FileList where w is SSFactionGroup select w as SSFactionGroup; foreach (SSFactionGroup f in OldFactions.ToList()) { receiver.FileList.Remove(f); } foreach (SSFactionGroup f in Factions) { receiver.FileList.Add(f); } SSRelativeUrl settingUrl = new SSRelativeUrl("data\\config\\settings.json"); SSJson SettingFile = (from ISSWritable w in receiver.FileList where w.RelativeUrl.Equals(settingUrl) select w as SSJson).SingleOrDefault(); Portraits = new List <JsonValue>(Ressources.PortraitsRessources.GetOriginalPortraits(Factions)); var UsedPortraits = new List <JsonValue>(Ressources.PortraitsRessources.GetCurrentPortraits(Factions)); var UnusedPortrait = Portraits.Except(UsedPortraits); JsonObject finalPortraits = new JsonObject(UnusedPortrait, "portraits"); if (SettingFile == null) { SettingFile = new SSJson(receiver, settingUrl); SettingFile.JsonContent = new JsonObject(); receiver.FileList.Add(SettingFile); SettingFile.JsonContent.AddSubField(".graphics.portraits", finalPortraits); SettingFile.RefreshFields(); } else { JsonToken setted; SettingFile.Fields.TryGetValue(".graphics.portraits", out setted); if (setted == null) { SettingFile.JsonContent.AddSubField(".graphics.portraits", finalPortraits); } else { JsonObject set = (JsonObject)setted; set.Values.Clear(); foreach (KeyValuePair <JsonValue, JsonToken> kv in finalPortraits.Values) { set.Values.Add(kv.Key, kv.Value); } SettingFile.RefreshFields(); } } IEnumerable <SSFactionGroup> OverWritten = from SSFactionGroup f in Factions where f.MustOverwrite == true select f; IEnumerable <string> ModOverWritten = OverWritten.Select(f => f.MonitoredContent).SelectMany(m => m.Files).Select(f => f.SourceMod).Distinct().Select(mod => mod.ModName); IEnumerable <JsonValue> AddedPortrait = Factions.FindAll(f => f.MonitoredContent.IsModified()).SelectMany(f => { List <MonitoredArrayModification> result = new List <MonitoredArrayModification>(); result.AddRange(f.MalePortraits.GetAddedMod()); result.AddRange(f.FemalePortraits.GetAddedMod()); return(result); }).Select(m => ((JsonValue)m.Content)).Distinct(); JsonRelativeToPortraits converter = new JsonRelativeToPortraits(); IEnumerable <string> addMod = AddedPortrait.Select(j => converter.Convert(new object[] { j, PortraitsRessource }, null, null, null)).Select(p => ((Portraits)p).SourceModName).Distinct(); var together = (ModOverWritten ?? Enumerable.Empty <string>()).Concat(addMod ?? Enumerable.Empty <string>()).Distinct(); JsonValue OldDesc = receiver.ModInfo.Fields[".description"] as JsonValue; string old = OldDesc.ToString(); OldDesc.SetContent(old + " Faction were modified using mods: " + string.Join(", ", together)); }
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 = "#db.db3"; } else if (db_file.IndexOf(".") == -1) { db_file += ".db3"; } System.IO.File.Copy(physical + FILE_DB_SQLITE, physical + "data/" + db_file, true); db_str = "Data Source=$ROOT/data/" + db_file; } else if (db_type == "oledb") { if (db_file == "") { db_file = "#db.mdb"; } else if (db_file.IndexOf(".") == -1) { db_file += ".mdb"; } System.IO.File.Copy(physical + FILE_DB_OLEDB, physical + "data/" + db_file, true); db_str = "Data Source=$ROOT/data/" + 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.Append("license_key", t_key); file.Append("license_name", t_name); file.Append("server_static",""); file.Append("server_static_enabled","false"); file.Append("db_type", db_type); file.Append("db_conn", db_str); file.Append("db_prefix", db_prefix); file.Append("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_categories 默认的about分类 // cms_usergroups //更新默认站点 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", user_pwd.Encode16MD5().EncodeMD5()}, {"@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; }
public string Label(string key) { const string cacheKey = "setting_cache_001"; if (this._settingsFile == null) { //读取数据 this._settingsFile = Cms.Cache.Get(cacheKey) as SettingFile; if (this._settingsFile == null) { string phyPath = AppDomain.CurrentDomain.BaseDirectory + settingsFile; this._settingsFile = new SettingFile(phyPath); //缓存数据 Cms.Cache.Insert(cacheKey, this._settingsFile, phyPath); } } return this._settingsFile[key]; }
/// <summary> /// Вывод в файл /// </summary> private void PrintToFile() { SettingFile.PrintToFileQueuering(queue); }
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.Append("state", "Normal"); isChanged = true; } if (!settings.Contains("override.url.indent")) { settings.Append("override.url.indent", ""); isChanged = true; } if (isChanged) { settings.Flush(); } }
/// <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.Append("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.Append("server_static_enabled","false"); settingChanged=true; } if(sf.Contains("sys_admin_tag")) { Settings.SYS_ADMIN_TAG=sf["sys_admin_tag"]; } else { sf.Append("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 ); }*/ }
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 (File.Exists(String.Concat(physical, INSTALL_LOCK))) { return(InstallCode.INSTALLED); } string licenceKey = form["licence_key"].Trim(), licenceName = form["licence_name"].Trim(), siteName = form["site_name"].Trim(), siteDomain = form["site_domain"].Trim(), siteLanguage = form["site_language"], userName = form["user_name"].Trim(), userPwd = form["user_pwd"].Trim(), dbType = form["db_type"].Trim(), dbServer = form["db_server"].Trim(), dbPrefix = form["db_prefix"].Trim(), dbPrefix1 = form["db_prefix1"].Trim(), dbName = form["db_name"].Trim(), dbUsr = form["db_usr"].Trim(), dbPwd = form["db_pwd"].Trim(), dbFile = form["db_file"].Trim(); string dbStr = ""; #region 检测数据 if (String.IsNullOrEmpty(licenceName) || String.IsNullOrEmpty(licenceKey)) { return(InstallCode.NO_LICENCE); } if (String.IsNullOrEmpty(siteName)) { return(InstallCode.NO_SITE_NAME); } if (String.IsNullOrEmpty(userName) || String.IsNullOrEmpty(userPwd)) { return(InstallCode.NO_USER); } #endregion #region 初始化数据库设置 //数据表前缀 if (String.IsNullOrEmpty(dbPrefix)) { dbPrefix = dbPrefix1; } const String dbDirName = "data"; //移动Access或SQLite数据库 if (dbType == "sqlite") { if (dbFile == "") { dbFile = "rd_" + string.Empty.RandomLetters(5) + ".db"; } else if (dbFile.IndexOf(".", StringComparison.Ordinal) == -1) { dbFile += ".db"; } if (!Directory.Exists(physical + dbDirName)) { Directory.CreateDirectory(physical + dbDirName).Create(); } dbStr = "Data Source=$ROOT/" + dbDirName + "/" + dbFile; } else if (dbType == "oledb") { if (dbFile == "") { dbFile = "rd_" + string.Empty.RandomLetters(5) + ".mdb"; } else if (dbFile.IndexOf(".", StringComparison.Ordinal) == -1) { dbFile += ".mdb"; } if (!Directory.Exists(physical + dbDirName)) { Directory.CreateDirectory(physical + dbDirName).Create(); } File.Copy(physical + FILE_DB_OLEDB, physical + dbDirName + "/" + dbFile, true); dbStr = "Data Source=$ROOT/" + dbDirName + "/" + dbFile; } else { //数据库资料不全 if (String.IsNullOrEmpty(dbServer) || String.IsNullOrEmpty(dbUsr) || String.IsNullOrEmpty(dbName) || String.IsNullOrEmpty(dbPrefix)) { return(InstallCode.DB_ERROR); } if (dbType == "mysql") { dbStr = String.Format("server={0};database={1};uid={2};pwd={3};charset=utf8", dbServer, dbName, dbUsr, dbPwd); } else if (dbType == "mssql") { dbStr = String.Format("server={0};database={1};uid={2};pwd={3}", dbServer, dbName, dbUsr, dbPwd); } else { return(InstallCode.DB_UNKNOWN); } } #endregion #region 写入配置 if (File.Exists(physical + FILE_SETTING)) { File.Delete(physical + FILE_SETTING); } SettingFile file = new SettingFile(physical + FILE_SETTING); file.Set("license_key", licenceKey); file.Set("license_name", licenceName); file.Set("server_static", ""); file.Set("server_static_enabled", "false"); file.Set("db_type", dbType); file.Set("db_conn", dbStr); file.Set("db_prefix", dbPrefix); file.Set("mm_avatar_path", "/file/avatar/"); file.Flush(); #endregion #region 初始化数据库 if (!ExtraDB(dbType, dbStr, dbPrefix)) { return(InstallCode.DB_INIT_ERROR); } #endregion #region 初始化数据 int siteId = this.InitSite(dbPrefix, siteName, siteDomain, int.Parse(siteLanguage)); this.InitUserAndCredential(dbPrefix, userName, userPwd); int catId = this.InitCategory(dbPrefix, siteId); this.InitArchive(dbPrefix, siteId, catId); #endregion //创建安装文件 File.Create(String.Concat(physical, INSTALL_LOCK)); Settings.TurnOffDebug(); Cms.Init(BootFlag.Normal, null); // 重启 HttpRuntime.UnloadAppDomain(); //AppDomain.Unload(AppDomain.CurrentDomain); return(InstallCode.SUCCESS); }
public BuildOEM() { this._sf = new SettingFile(this.GetMappingXmlPath("build_set")); }
/// <summary> /// Вывод в файл /// </summary> private void PrintToFile() { SettingFile.PrintToFileListQueuering(listQueue); }
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.Append("CFG_ShowErrror", this.CFG_ShowError?"true":"false"); } if (sf.Contains("CFG_SitemapSplit")) { sf["CFG_SitemapSplit"] = this.cfg_sitemapSplit; } else { sf.Append("CFG_SitemapSplit", this.cfg_sitemapSplit); } if (sf.Contains("CFG_ArchiveTagsFormat")) { sf["CFG_ArchiveTagsFormat"] = this.cfg_ArchiveTagsFormat; } else { sf.Append("CFG_ArchiveTagsFormat", this.cfg_ArchiveTagsFormat); } if (sf.Contains("CFG_NavigatorLinkFormat")) { sf["CFG_NavigatorLinkFormat"] = this.cfg_navigatorLinkFormat; } else { sf.Append("CFG_NavigatorLinkFormat", this.cfg_navigatorLinkFormat); } if (sf.Contains("CFG_NavigatorChildFormat")) { sf["CFG_NavigatorChildFormat"] = this.cfg_navigatorChildFormat; } else { sf.Append("CFG_NavigatorChildFormat", this.cfg_navigatorChildFormat); } if (sf.Contains("CFG_FriendShowNum")) { sf["CFG_FriendShowNum"] = this.cfg_friendShowNum.ToString(); } else { sf.Append("CFG_FriendShowNum", this.cfg_friendShowNum.ToString()); } if (sf.Contains("CFG_FriendLinkFormat")) { sf["CFG_FriendLinkFormat"] = this.cfg_friendLinkFormat; } else { sf.Append("CFG_FriendLinkFormat", this.cfg_friendLinkFormat); } if (sf.Contains("CFG_TrafficFormat")) { sf["CFG_TrafficFormat"] = this.cfg_trafficFormat; } else { sf.Append("CFG_TrafficFormat", this.cfg_trafficFormat); } if (sf.Contains("CFG_CommentEditorHtml")) { sf["CFG_CommentEditorHtml"] = this.cfg_commentEditorHtml; } else { sf.Append("CFG_CommentEditorHtml", this.cfg_commentEditorHtml); } if (sf.Contains("CFG_allowAmousComment")) { sf["CFG_allowAmousComment"] = this.cfg_allowAmousComment ? "true" : "false"; } else { sf.Append("CFG_allowAmousComment", this.cfg_allowAmousComment ? "true" : "false"); } if (sf.Contains("CFG_OutlineLength")) { sf["CFG_OutlineLength"] = this.cfg_outlineLength.ToString(); } else { sf.Append("CFG_OutlineLength", this.cfg_outlineLength.ToString()); } if (sf.Contains("CFG_ArchiveFormat")) { sf["CFG_ArchiveFormat"] = this.cfg_archiveFormat; } else { sf.Append("CFG_ArchiveFormat", this.cfg_archiveFormat); } if (sf.Contains("CFG_ArchiveLinkFormat")) { sf["CFG_ArchiveLinkFormat"] =this.cfg_archiveLinkFormat; } else { sf.Append("CFG_ArchiveLinkFormat", this.cfg_archiveLinkFormat); } if (sf.Contains("CFG_PrevArchiveFormat")) { sf["CFG_PrevArchiveFormat"] = this.cfg_prevArchiveFormat; } else { sf.Append("CFG_PrevArchiveFormat", this.cfg_prevArchiveFormat); } if (sf.Contains("CFG_NextArchiveFormat")) { sf["CFG_NextArchiveFormat"] = this.cfg_nextArchiveFormat; } else { sf.Append("CFG_NextArchiveFormat", this.cfg_nextArchiveFormat); } if (sf.Contains("CFG_CategoryLinkFormat")) { sf["CFG_CategoryLinkFormat"] = this.cfg_categoryLinkFormat; } else { sf.Append("CFG_CategoryLinkFormat", this.cfg_categoryLinkFormat); } sf.Flush(); }
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 }
/// <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 }); }
/// <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 void Dispose() { _settingsFile = null; }
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 = "#db.db3"; } else if (db_file.IndexOf(".") == -1) { db_file += ".db3"; } System.IO.File.Copy(physical + FILE_DB_SQLITE, physical + "data/" + db_file, true); db_str = "Data Source=$ROOT/data/" + db_file; } else if (db_type == "oledb") { if (db_file == "") { db_file = "#db.mdb"; } else if (db_file.IndexOf(".") == -1) { db_file += ".mdb"; } System.IO.File.Copy(physical + FILE_DB_OLEDB, physical + "data/" + db_file, true); db_str = "Data Source=$ROOT/data/" + 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.Append("license_key", t_key); file.Append("license_name", t_name); file.Append("server_static", ""); file.Append("server_static_enabled", "false"); file.Append("db_type", db_type); file.Append("db_conn", db_str); file.Append("db_prefix", db_prefix); file.Append("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_categories 默认的about分类 // cms_usergroups //更新默认站点 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", user_pwd.Encode16MD5().EncodeMD5() }, { "@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); }
/// <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.Append("sys_autowww", Settings.SYS_AUTOWWW ? "true" : "false"); } else { sf["sys_autowww"] = Settings.SYS_AUTOWWW ? "true" : "false"; } //虚拟路径 //if (!sf.Contains("sys_virthpath")) //{ // sf.Append("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.Append("tpl_usecompress", Settings.TPL_UseCompress ? "true" : "false"); } else { sf["tpl_usecompress"] = Settings.TPL_UseCompress ? "true" : "false"; } //使用完整路径 if (!sf.Contains("tpl_usefullpath")) { sf.Append("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.Append("opti_IndexCacheSeconds", Settings.Opti_IndexCacheSeconds.ToString()); } else { sf["opti_IndexCacheSeconds"] = Settings.Opti_IndexCacheSeconds.ToString(); } if (!sf.Contains("Opti_GC_Collect_Interval")) { sf.Append("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.Append("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.Append("license_name", sf["sys_name"]); sf.Append("license_key", sf["sys_key"]); } sf.Remove("sys_name"); sf.Remove("sys_key"); } sf.Flush(); }
/// <summary> /// 模板列表 /// </summary> public void Templates_GET() { if (!UserState.Administrator.Current.IsMaster) { 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 (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.CompareOrdinal(tpl, curTemplate) != 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 }); }
/// <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.Append("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.Append("server_static_enabled", "false"); settingChanged = true; } if (sf.Contains("sys_admin_tag")) { Settings.SYS_ADMIN_TAG = sf["sys_admin_tag"]; } else { sf.Append("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 * ); * }*/ }