Example #1
0
		/// <summary>
		/// 返回指定文件中的UserPref集合
		/// </summary>
		/// <param name="filename">文件名</param>
		/// <returns></returns>
        public static UserPrefCollection<UserPref> LoadUserPrefs(string filename)
    	{
			XmlDocument xmlfile = LoadXmlFile(filename);

			if (xmlfile == null)
				return null;
			XmlNodeList xmlnodelist = xmlfile.SelectNodes("/Module/UserPref");

			if (xmlnodelist == null)
				return null;

            UserPrefCollection<UserPref> upc = new UserPrefCollection<UserPref>();

			foreach (XmlNode xmlnode in xmlnodelist)
			{
				UserPref up = new UserPref();
				up.Name = xmlnode.Attributes["name"] == null ? "" : xmlnode.Attributes["name"].Value;
				up.DisplayName = xmlnode.Attributes["display_name"] == null ? "" : xmlnode.Attributes["display_name"].Value;
				up.UrlParam = xmlnode.Attributes["urlparam"] == null ? "" : xmlnode.Attributes["urlparam"].Value;
				up.DataType = xmlnode.Attributes["datatype"] == null ? UserPrefDataType.StringType : ParseUserPrefDataType(xmlnode.Attributes["datatype"].Value);

				if (up.DataType == UserPrefDataType.EnumType)
				{
                    up.EnumValues = new Discuz.Common.Generic.List<EnumValue>();
					XmlNodeList enumlist = xmlnode.SelectNodes("EnumValue");
					foreach(XmlNode enumnode in enumlist)
					{
						EnumValue ev = new EnumValue();
						ev.Value = enumnode.Attributes["value"] == null ? "" : enumnode.Attributes["value"].Value;
						ev.DisplayValue = enumnode.Attributes["display_value"] == null ? "" : enumnode.Attributes["display_value"].Value;
						up.EnumValues.Add(ev);
					}
				}

				up.Required = xmlnode.Attributes["required"] == null ? false : Utils.StrToBool(xmlnode.Attributes["required"].Value, false);
				up.DefaultValue = xmlnode.Attributes["default_value"] == null ? "" : xmlnode.Attributes["default_value"].Value;
				upc.Add(up);
			}
			return upc;
		}