/// <summary> /// 输出XML /// </summary> /// <returns></returns> public String ToXml(basePortalModule pmb) { //读取XML的模版 XmlFormat xf = new XmlFormat(pmb.MapPath(String.Format("{0}Resource/xml/EffectDB.xml", pmb.ModulePath))); //将字段列表转换成XML的实体 return(xf.ToXml <EffectDB>(this)); }
/// ----------------------------------------------------------------------------- /// <summary> /// ImportModule implements the IPortable ImportModule Interface /// </summary> /// <remarks> /// </remarks> /// <param name="ModuleID">The ID of the Module being imported</param> /// <param name="Content">The Content being imported</param> /// <param name="Version">The Version of the Module Content being imported</param> /// <param name="UserID">The UserID of the User importing the Content</param> /// <history> /// </history> /// ----------------------------------------------------------------------------- public void ImportModule(int ModuleID, string Content, string Version, int UserId) { //先清除原有的字段列表 QueryParam qp = new QueryParam(); Int32 RecordCount = 0; qp.Where.Add(new SearchParam("ModuleId", ModuleID, SearchType.Equal)); List <DNNGo_PowerForms_Field> fieldList = DNNGo_PowerForms_Field.FindAll(qp, out RecordCount); foreach (DNNGo_PowerForms_Field fieldItem in fieldList) { fieldItem.Delete(); } ImportExportHelper ieHelper = new ImportExportHelper(); ieHelper.ModuleID = ModuleID; ieHelper.UserId = UserId; if (!String.IsNullOrEmpty(Content)) { //将XML转换为实体 XmlFormat xf = new XmlFormat(); xf.XmlDoc.LoadXml(Content); List <FieldEntity> XmlFieldList = xf.ToList <FieldEntity>(); List <GallerySettingsEntity> XmlSettingList = xf.ToList <GallerySettingsEntity>(); Int32 InsertResult = 0; foreach (FieldEntity XmlField in XmlFieldList) { DNNGo_PowerForms_Field FieldItem = ieHelper.XmlToEntity(XmlField); FieldItem.CreateUser = UserId; FieldItem.CreateTime = DateTime.Now; FieldItem.LastIP = WebHelper.UserHost; FieldItem.LastTime = DateTime.Now; FieldItem.LastUser = UserId; if (FieldItem.Insert() > 0) { InsertResult++; } } //插入设置的记录 foreach (GallerySettingsEntity XmlSettingItem in XmlSettingList) { if (!String.IsNullOrEmpty(XmlSettingItem.SettingName) && !String.IsNullOrEmpty(XmlSettingItem.SettingValue)) { ieHelper.UpdateModuleSetting(XmlSettingItem.SettingName, XmlSettingItem.SettingValue); } } } }
/// ----------------------------------------------------------------------------- /// <summary> /// ExportModule implements the IPortable ExportModule Interface /// </summary> /// <remarks> /// </remarks> /// <param name="ModuleID">The Id of the module to be exported</param> /// <history> /// </history> /// ----------------------------------------------------------------------------- public string ExportModule(int ModuleID) { string strXML = String.Empty; ImportExportHelper ieHelper = new ImportExportHelper(); ieHelper.ModuleID = ModuleID; //查询字段的数据,填充待导出的XML实体 QueryParam qp = new QueryParam(); Int32 RecordCount = 0; qp.Orderfld = DNNGo_PowerForms_Field._.Sort; qp.OrderType = 0; qp.Where.Add(new SearchParam("ModuleId", ModuleID, SearchType.Equal)); List <DNNGo_PowerForms_Field> fieldList = DNNGo_PowerForms_Field.FindAll(qp, out RecordCount); List <FieldEntity> xmlFieldList = new List <FieldEntity>(); List <GallerySettingsEntity> xmlSettingList = new List <GallerySettingsEntity>(); foreach (DNNGo_PowerForms_Field fieldItem in fieldList) { xmlFieldList.Add(ieHelper.EntityToXml(fieldItem)); } if (xmlFieldList != null && xmlFieldList.Count > 0) { //查询出所有的配置项 List <SettingEntity> EffectSettingDB = ieHelper.Setting_EffectSettingDB; if (EffectSettingDB != null && EffectSettingDB.Count > 0) { foreach (SettingEntity SettingItem in EffectSettingDB) { String SettingValue = ieHelper.ViewXmlSetting(SettingItem.Name, SettingItem.DefaultValue).ToString(); xmlSettingList.Add(new GallerySettingsEntity(ieHelper.EffectSettingsFormat(ieHelper.Settings_EffectName, SettingItem.Name), SettingValue)); } foreach (String key in ieHelper.PowerForms_Settings.Keys) { if (!xmlSettingList.Exists(r1 => r1.SettingName == key) && key.IndexOf("Gallery") != 0) { xmlSettingList.Add(new GallerySettingsEntity(key, Convert.ToString(ieHelper.PowerForms_Settings[key]))); } } } XmlFormat xf = new XmlFormat(HttpContext.Current.Server.MapPath(String.Format("{0}Resource/xml/FieldEntity.xml", "~/DesktopModules/DNNGo_PowerForms/"))); strXML = xf.ToXml <FieldEntity>(xmlFieldList, xmlSettingList); } else { } return(strXML); }
/// <summary> /// 创建 /// </summary> /// <param name="FieldItem"></param> /// <param name="ControlName"></param> /// <returns></returns> public String ViewCreateIconPicker(SettingEntity FieldItem, String ControlName, String ControlID) { StringBuilder ControlHtml = new StringBuilder();//控件的HTML ControlHtml.AppendFormat("<select id=\"{0}\" name=\"{1}\" class=\"form-control search-select search-select-auto {2}\" ", ControlID, ControlName, ViewVerification(FieldItem)); ControlHtml.AppendFormat(" style=\"width:{0}px;\" >", FieldItem.Width); List <OptionItem> Optins = new List <OptionItem>(); if (String.IsNullOrEmpty(FieldItem.ListContent))//没有列表项的时候,需要加载默认的字体 { String xml_url = BaseModule.Server.MapPath(String.Format("{0}Resource/xml/SelectIcons.xml", BaseModule.ModulePath)); XmlFormat xf = new XmlFormat(xml_url); Optins = xf.ToList <OptionItem>(); } else if (!String.IsNullOrEmpty(FieldItem.ListContent)) { List <String> list = Common.GetList(FieldItem.ListContent.Replace(",", "|").Replace("\r\n", "|").Replace("\r", "|"), "|"); for (Int32 i = 0; i < list.Count; i++) { if (!String.IsNullOrEmpty(list[i])) { OptionItem Optin = new OptionItem(); Optin.Text = list[i]; Optin.Value = list[i]; //判断是否包含有键值对,将键值对分离开 if (list[i].IndexOf(":") >= 0) { List <String> ItemKeyValue = Common.GetList(list[i], ":"); Optin.Text = ItemKeyValue[0]; Optin.Value = ItemKeyValue[1]; } Optins.Add(Optin); } } } foreach (var Optin in Optins) { String DisabledStr = String.IsNullOrEmpty(Optin.Value) ? "disabled=\"disabled\"" : ""; String CheckedStr = !String.IsNullOrEmpty(Optin.Value) && FieldItem.DefaultValue.IndexOf(Optin.Value, StringComparison.CurrentCultureIgnoreCase) >= 0 ? "selected=\"selected\"" : ""; ControlHtml.AppendFormat("<option value=\"{0}\" {2} {3}> {1}</option>", Optin.Value, Optin.Text, CheckedStr, DisabledStr).AppendLine(); } ControlHtml.Append("</select>"); return(ControlHtml.ToString()); }
/// <summary> /// 导出数据到XML /// </summary> protected void cmdExportToXml_Click(object sender, EventArgs e) { ImportExportHelper ieHelper = new ImportExportHelper(); ieHelper.ModuleID = ModuleId; //查询字段的数据,填充待导出的XML实体 QueryParam qp = new QueryParam(); Int32 RecordCount = 0; qp.Orderfld = DNNGo_PowerForms_Field._.Sort; qp.OrderType = 0; qp.Where.Add(new SearchParam("ModuleId", ModuleId, SearchType.Equal)); List <DNNGo_PowerForms_Field> fieldList = DNNGo_PowerForms_Field.FindAll(qp, out RecordCount); List <FieldEntity> xmlFieldList = new List <FieldEntity>(); List <GallerySettingsEntity> xmlSettingList = new List <GallerySettingsEntity>(); foreach (DNNGo_PowerForms_Field fieldItem in fieldList) { xmlFieldList.Add(ieHelper.EntityToXml(fieldItem)); } //查询出所有的配置项 List <SettingEntity> EffectSettingDB = ieHelper.Setting_EffectSettingDB; if (EffectSettingDB != null && EffectSettingDB.Count > 0) { foreach (SettingEntity SettingItem in EffectSettingDB) { String SettingValue = ieHelper.ViewXmlSetting(SettingItem.Name, SettingItem.DefaultValue).ToString(); xmlSettingList.Add(new GallerySettingsEntity(ieHelper.EffectSettingsFormat(ieHelper.Settings_EffectName, SettingItem.Name), SettingValue)); } foreach (String key in ieHelper.PowerForms_Settings.Keys) { if (!xmlSettingList.Exists(r1 => r1.SettingName == key) && key.IndexOf("Gallery") != 0) { xmlSettingList.Add(new GallerySettingsEntity(key, Convert.ToString(ieHelper.PowerForms_Settings[key]))); } } } XmlFormat xf = new XmlFormat(MapPath(String.Format("{0}Resource/xml/FieldEntity.xml", ModulePath))); //将字段列表转换成XML的实体 String XmlContent = xf.ToXml <FieldEntity>(xmlFieldList, xmlSettingList); String XmlFilePath = FileSystemUtils.SaveXmlToFile(String.Format("FieldListEntity_{0}_{1}.xml", ModuleId, xUserTime.UtcTime().ToString("yyyyMMddHHmmssffff")), XmlContent, this); FileSystemUtils.DownloadFile(XmlFilePath, "FieldListEntity.xml"); }
/// <summary> /// 从XML导入数据 /// </summary> protected void cmdImportFormXml_Click(object sender, EventArgs e) { try { HttpPostedFile hpfile = fuImportFormXml.PostedFile; if (hpfile.ContentLength > 0) { if (Path.GetExtension(hpfile.FileName).IndexOf(".xml", StringComparison.CurrentCultureIgnoreCase) >= 0) { ImportExportHelper ieHelper = new ImportExportHelper(); ieHelper.ModuleID = ModuleId; ieHelper.UserId = UserId; //先清除原有的字段列表 QueryParam qp = new QueryParam(); Int32 RecordCount = 0; qp.Where.Add(new SearchParam("ModuleId", ModuleId, SearchType.Equal)); List <DNNGo_PowerForms_Field> fieldList = DNNGo_PowerForms_Field.FindAll(qp, out RecordCount); foreach (DNNGo_PowerForms_Field fieldItem in fieldList) { fieldItem.Delete(); } //构造需要上传的路径 String XmlFilePath = String.Format("{0}PowerForms\\Import\\{1}_{2}", PortalSettings.HomeDirectoryMapPath, xUserTime.UtcTime().ToString("yyyyMMddHHmmssffff"), fuImportFormXml.FileName); FileInfo XmlFile = new FileInfo(XmlFilePath); //判断文件夹是否存在 if (!XmlFile.Directory.Exists) { XmlFile.Directory.Create(); } //保存文件 fuImportFormXml.SaveAs(XmlFilePath); XmlFormat xf = new XmlFormat(XmlFilePath); List <FieldEntity> XmlFieldList = xf.ToList <FieldEntity>(); Int32 InsertResult = 0; foreach (FieldEntity XmlField in XmlFieldList) { DNNGo_PowerForms_Field FieldItem = ieHelper.XmlToEntity(XmlField); FieldItem.CreateUser = UserId; FieldItem.CreateTime = xUserTime.UtcTime(); FieldItem.ModuleId = ModuleId; FieldItem.PortalId = PortalId; FieldItem.LastIP = WebHelper.UserHost; FieldItem.LastTime = xUserTime.UtcTime(); FieldItem.LastUser = UserId; if (FieldItem.Insert() > 0) { InsertResult++; } } //提示 mTips.LoadMessage("ImportFieldSuccess", EnumTips.Success, this, new String[] { InsertResult.ToString() }); //跳转 Response.Redirect(xUrl("FieldList")); } else { //上传文件的后缀名错误 mTips.IsPostBack = true; mTips.LoadMessage("UploadFieldExtensionError", EnumTips.Warning, this, new String[] { "xml" }); } } else { //为上传任何数据 mTips.IsPostBack = true; mTips.LoadMessage("ImportFieldNullError", EnumTips.Success, this, new String[] { "" }); } } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); } }
/// <summary> /// 效果列表行绑定 /// </summary> protected void gvEffectList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DirectoryInfo EffectDir = e.Row.DataItem as DirectoryInfo; if (!EffectDir.Exists) { EffectDir.Create(); } //获取效果数据的XML String EffectDBPath = String.Format("{0}\\EffectDB.xml", EffectDir.FullName); if (File.Exists(EffectDBPath)) { XmlFormat xf = new XmlFormat(EffectDBPath); EffectDB ResultDB = xf.ToItem <EffectDB>(); //构造图片的路径 Image imgPicture = e.Row.FindControl("imgPicture") as Image; imgPicture.Attributes.Add("onError", String.Format("this.src='{0}Resource/images/no_image.png'", ModulePath)); if (!String.IsNullOrEmpty(ResultDB.Thumbnails)) { if (ResultDB.Thumbnails.IndexOf("http://", StringComparison.CurrentCultureIgnoreCase) >= 0) { imgPicture.ImageUrl = ResultDB.Thumbnails; } else { imgPicture.ImageUrl = String.Format("{0}Results/{1}/{2}", ModulePath, ResultDB.Name, ResultDB.Thumbnails); } } //构造效果标题描述 Label labName = e.Row.FindControl("labName") as Label; Label labDescription = e.Row.FindControl("labDescription") as Label; Label labVersion = e.Row.FindControl("labVersion") as Label; labName.Text = ResultDB.Name; labDescription.Text = ResultDB.Description; labVersion.Text = ResultDB.Version; //演示地址 if (!String.IsNullOrEmpty(ResultDB.DemoUrl)) { Literal LiDemoUrl = e.Row.FindControl("LiDemoUrl") as Literal; LiDemoUrl.Text = String.Format("<a href=\"{0}\" target=\"_blank\" class=\"btn btn-default btn-sm\"><i class=\"fa clip-link\"></i> {1}</a>", ResultDB.DemoUrl, ViewResourceText("labDemoUrl", "Demo Url")); } //响应式 if (ResultDB.Responsive) { Literal LiResponsive = e.Row.FindControl("LiResponsive") as Literal; LiResponsive.Text = String.Format("<a class=\"btn btn-default btn-sm\"><i class=\"fa clip-embed\"></i> {0}</a>", ViewResourceText("labResponsive", "Responsive")); } //应用效果的按钮 LinkButton btnApply = e.Row.FindControl("btnApply") as LinkButton; HyperLink hlThemeName = e.Row.FindControl("hlThemeName") as HyperLink; btnApply.CommandArgument = ResultDB.Name; if (!String.IsNullOrEmpty(Settings_ResultName) && Settings_ResultName == ResultDB.Name)//判断设置效果是否为当前效果 { btnApply.Text = String.Format("<i class=\"fa fa-stop\"></i> {1}", ModulePath, Localization.GetString("btnApply_Stop", this.LocalResourceFile)); btnApply.Enabled = false; btnApply.CssClass = "btn btn-danger"; hlThemeName.Text = String.Format("<i class=\"fa clip-cogs\"></i> {0}", Settings_ResultThemeName); hlThemeName.NavigateUrl = xUrl("Effect_Options"); } else { btnApply.Text = String.Format("<i class=\"fa fa-play-circle-o\"></i> {1}", ModulePath, Localization.GetString("btnApply_Play", this.LocalResourceFile)); btnApply.CssClass = "btn btn-success"; hlThemeName.Visible = false; } } } }