public void RblTableRule_OnSelectedIndexChanged(object sender, EventArgs e) { var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); PhTableChoose.Visible = PhTableHandWrite.Visible = false; if (tableRule == ETableRule.Choose) { PhTableChoose.Visible = true; } else if (tableRule == ETableRule.HandWrite) { PhTableHandWrite.Visible = true; } }
public void Page_Load(object sender, EventArgs e) { if (IsForbidden) { return; } PageUtils.CheckRequestParameter("siteId"); if (IsPostBack) { return; } VerifySystemPermissions(ConfigManager.SettingsPermissions.Site); if (SiteInfo.IsRoot) { PhParentId.Visible = false; } else { PhParentId.Visible = true; DdlParentId.Items.Add(new ListItem("<无上级站点>", "0")); var siteIdList = SiteManager.GetSiteIdList(); var mySystemInfoArrayList = new ArrayList(); var parentWithChildren = new Hashtable(); foreach (var siteId in siteIdList) { if (siteId == SiteId) { continue; } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo.IsRoot == false) { if (siteInfo.ParentId == 0) { mySystemInfoArrayList.Add(siteInfo); } else { var children = new ArrayList(); if (parentWithChildren.Contains(siteInfo.ParentId)) { children = (ArrayList)parentWithChildren[siteInfo.ParentId]; } children.Add(siteInfo); parentWithChildren[siteInfo.ParentId] = children; } } } foreach (SiteInfo siteInfo in mySystemInfoArrayList) { AddSite(DdlParentId, siteInfo, parentWithChildren, 0); } ControlUtils.SelectSingleItem(DdlParentId, SiteInfo.ParentId.ToString()); } var tableNameList = SiteManager.GetSiteTableNames(); if (tableNameList.Count > 0) { RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Choose, true)); RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false)); PhTableChoose.Visible = true; PhTableHandWrite.Visible = false; foreach (var tableName in tableNameList) { DdlTableChoose.Items.Add(new ListItem(tableName, tableName)); } } else { RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false)); PhTableChoose.Visible = false; PhTableHandWrite.Visible = false; } TbTaxis.Text = SiteInfo.Taxis.ToString(); RblIsCheckContentUseLevel.Items.Add(new ListItem("默认审核机制", false.ToString())); RblIsCheckContentUseLevel.Items.Add(new ListItem("多级审核机制", true.ToString())); if (SiteInfo == null) { PageUtils.RedirectToErrorPage("站点不存在,请确认后再试!"); return; } TbSiteName.Text = SiteInfo.SiteName; ControlUtils.SelectSingleItem(RblIsCheckContentUseLevel, SiteInfo.Additional.IsCheckContentLevel.ToString()); if (SiteInfo.Additional.IsCheckContentLevel) { ControlUtils.SelectSingleItem(DdlCheckContentLevel, SiteInfo.Additional.CheckContentLevel.ToString()); PhCheckContentLevel.Visible = true; } else { PhCheckContentLevel.Visible = false; } if (!string.IsNullOrEmpty(SiteInfo.SiteDir)) { TbSiteDir.Text = PathUtils.GetDirectoryName(SiteInfo.SiteDir, false); } if (SiteInfo.IsRoot) { PhSiteDir.Visible = false; } ControlUtils.SelectSingleItem(DdlTableChoose, SiteInfo.TableName); BtnSubmit.Attributes.Add("onclick", PageLoading()); }
public override void Submit_OnClick(object sender, EventArgs e) { if (!Page.IsPostBack || !Page.IsValid) { return; } SiteInfo.SiteName = TbSiteName.Text; SiteInfo.Taxis = TranslateUtils.ToInt(TbTaxis.Text); SiteInfo.Additional.IsCheckContentLevel = TranslateUtils.ToBool(RblIsCheckContentUseLevel.SelectedValue); if (SiteInfo.Additional.IsCheckContentLevel) { SiteInfo.Additional.CheckContentLevel = TranslateUtils.ToInt(DdlCheckContentLevel.SelectedValue); } var isTableChanged = false; var tableName = string.Empty; var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); if (tableRule == ETableRule.Choose) { tableName = DdlTableChoose.SelectedValue; } else if (tableRule == ETableRule.HandWrite) { tableName = TbTableHandWrite.Text; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } if (!StringUtils.EqualsIgnoreCase(SiteInfo.TableName, tableName)) { isTableChanged = true; SiteInfo.TableName = tableName; } if (SiteInfo.IsRoot == false) { if (!StringUtils.EqualsIgnoreCase(PathUtils.GetDirectoryName(SiteInfo.SiteDir, false), TbSiteDir.Text)) { var list = DataProvider.SiteDao.GetLowerSiteDirList(SiteInfo.ParentId); if (list.IndexOf(TbSiteDir.Text.ToLower()) != -1) { FailMessage("站点修改失败,已存在相同的发布路径!"); return; } var parentPsPath = WebConfigUtils.PhysicalApplicationPath; if (SiteInfo.ParentId > 0) { var parentSiteInfo = SiteManager.GetSiteInfo(SiteInfo.ParentId); parentPsPath = PathUtility.GetSitePath(parentSiteInfo); } DirectoryUtility.ChangeSiteDir(parentPsPath, SiteInfo.SiteDir, TbSiteDir.Text); } if (PhParentId.Visible && SiteInfo.ParentId != TranslateUtils.ToInt(DdlParentId.SelectedValue)) { var newParentId = TranslateUtils.ToInt(DdlParentId.SelectedValue); var list = DataProvider.SiteDao.GetLowerSiteDirList(newParentId); if (list.IndexOf(TbSiteDir.Text.ToLower()) != -1) { FailMessage("站点修改失败,已存在相同的发布路径!"); return; } DirectoryUtility.ChangeParentSite(SiteInfo.ParentId, TranslateUtils.ToInt(DdlParentId.SelectedValue), SiteId, TbSiteDir.Text); SiteInfo.ParentId = newParentId; } SiteInfo.SiteDir = TbSiteDir.Text; } DataProvider.SiteDao.Update(SiteInfo); if (isTableChanged) { ContentManager.RemoveCountCache(tableName); } AuthRequest.AddAdminLog("修改站点属性", $"站点:{SiteInfo.SiteName}"); SuccessMessage("站点修改成功!"); AddWaitAndRedirectScript(PageSite.GetRedirectUrl()); }
public IHttpActionResult Submit() { try { var request = new AuthenticatedRequest(); if (!request.IsAdminLoggin || !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.SiteAdd)) { return(Unauthorized()); } var createType = request.GetPostString("createType"); var createTemplateId = request.GetPostString("createTemplateId"); var siteName = request.GetPostString("siteName"); var isRoot = request.GetPostBool("isRoot"); var parentId = request.GetPostInt("parentId"); var siteDir = request.GetPostString("siteDir"); var domainName = request.GetPostString("domainName"); var tableRule = ETableRuleUtils.GetEnumType(request.GetPostString("tableRule")); var tableChoose = request.GetPostString("tableChoose"); var tableHandWrite = request.GetPostString("tableHandWrite"); var isImportContents = request.GetPostBool("isImportContents"); var isImportTableStyles = request.GetPostBool("isImportTableStyles"); if (!isRoot) { if (DirectoryUtils.IsSystemDirectory(siteDir)) { return(BadRequest("文件夹名称不能为系统文件夹名称,请更改文件夹名称!")); } if (!DirectoryUtils.IsDirectoryNameCompliant(siteDir)) { return(BadRequest("文件夹名称不符合系统要求,请更改文件夹名称!")); } var list = DataProvider.SiteDao.GetLowerSiteDirList(parentId); if (list.IndexOf(siteDir.ToLower()) != -1) { return(BadRequest("已存在相同的发布路径,请更改文件夹名称!")); } } var channelInfo = new ChannelInfo(); channelInfo.ChannelName = channelInfo.IndexName = "首页"; channelInfo.ParentId = 0; channelInfo.ContentModelPluginId = string.Empty; var tableName = string.Empty; if (tableRule == ETableRule.Choose) { tableName = tableChoose; } else if (tableRule == ETableRule.HandWrite) { tableName = tableHandWrite; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } var siteInfo = new SiteInfo { SiteName = AttackUtils.FilterXss(siteName), SiteDir = siteDir, DomainName = domainName, TableName = tableName, ParentId = parentId, IsRoot = isRoot }; siteInfo.Additional.IsCheckContentLevel = false; siteInfo.Additional.Charset = ECharsetUtils.GetValue(ECharset.utf_8); var siteId = DataProvider.ChannelDao.InsertSiteInfo(channelInfo, siteInfo, request.AdminName); if (string.IsNullOrEmpty(tableName)) { tableName = ContentDao.GetContentTableName(siteId); DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); DataProvider.SiteDao.UpdateTableName(siteId, tableName); } if (request.AdminPermissionsImpl.IsSystemAdministrator && !request.AdminPermissionsImpl.IsConsoleAdministrator) { var siteIdList = request.AdminPermissionsImpl.GetSiteIdList() ?? new List <int>(); siteIdList.Add(siteId); var adminInfo = AdminManager.GetAdminInfoByUserId(request.AdminId); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, TranslateUtils.ObjectCollectionToString(siteIdList)); } var siteTemplateDir = string.Empty; var onlineTemplateName = string.Empty; if (StringUtils.EqualsIgnoreCase(createType, "local")) { siteTemplateDir = createTemplateId; } else if (StringUtils.EqualsIgnoreCase(createType, "cloud")) { onlineTemplateName = createTemplateId; } var redirectUrl = PageProgressBar.GetCreateSiteUrl(siteId, isImportContents, isImportTableStyles, siteTemplateDir, onlineTemplateName, StringUtils.Guid()); SystemManager.UpdateSites(); return(Ok(new { Value = redirectUrl })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public void Page_Load(object sender, EventArgs e) { if (IsForbidden) { return; } if (IsPostBack) { return; } VerifySystemPermissions(ConfigManager.SettingsPermissions.SiteAdd); //DataProvider.TableDao.CreateAllTableCollectionInfoIfNotExists(); var hqSiteId = DataProvider.SiteDao.GetIdByIsRoot(); if (hqSiteId == 0) { ControlUtils.SelectSingleItem(RblIsRoot, true.ToString()); PhIsNotRoot.Visible = false; } else { RblIsRoot.Enabled = false; } DdlParentId.Items.Add(new ListItem("<无上级站点>", "0")); var siteIdArrayList = SiteManager.GetSiteIdList(); var mySystemInfoArrayList = new ArrayList(); var parentWithChildren = new Hashtable(); foreach (var siteId in siteIdArrayList) { var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo.IsRoot == false) { if (siteInfo.ParentId == 0) { mySystemInfoArrayList.Add(siteInfo); } else { var children = new ArrayList(); if (parentWithChildren.Contains(siteInfo.ParentId)) { children = (ArrayList)parentWithChildren[siteInfo.ParentId]; } children.Add(siteInfo); parentWithChildren[siteInfo.ParentId] = children; } } } foreach (SiteInfo siteInfo in mySystemInfoArrayList) { AddSite(DdlParentId, siteInfo, parentWithChildren, 0); } ControlUtils.SelectSingleItem(DdlParentId, "0"); ECharsetUtils.AddListItems(DdlCharset); ControlUtils.SelectSingleItem(DdlCharset, ECharsetUtils.GetValue(ECharset.utf_8)); var tableNameList = SiteManager.GetSiteTableNames(); if (tableNameList.Count > 0) { RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Choose, true)); RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Create, false)); RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false)); PhTableChoose.Visible = true; PhTableHandWrite.Visible = false; foreach (var tableName in tableNameList) { DdlTableChoose.Items.Add(new ListItem(tableName, tableName)); } } else { RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.Create, true)); RblTableRule.Items.Add(ETableRuleUtils.GetListItem(ETableRule.HandWrite, false)); PhTableChoose.Visible = false; PhTableHandWrite.Visible = false; } RblIsCheckContentUseLevel.Items.Add(new ListItem("默认审核机制", false.ToString())); RblIsCheckContentUseLevel.Items.Add(new ListItem("多级审核机制", true.ToString())); ControlUtils.SelectSingleItem(RblIsCheckContentUseLevel, false.ToString()); if (SiteTemplateManager.Instance.IsSiteTemplateExists) { RblSource.Items.Add(new ListItem("创建空站点(不使用站点模板)", ETriStateUtils.GetValue(ETriState.True))); RblSource.Items.Add(new ListItem("使用本地站点模板创建站点", ETriStateUtils.GetValue(ETriState.False))); RblSource.Items.Add(new ListItem("使用在线站点模板创建站点", ETriStateUtils.GetValue(ETriState.All))); } else { RblSource.Items.Add(new ListItem("创建空站点(不使用站点模板)", ETriStateUtils.GetValue(ETriState.True))); RblSource.Items.Add(new ListItem("使用在线站点模板创建站点", ETriStateUtils.GetValue(ETriState.All))); } ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.True)); var siteTemplateDir = AuthRequest.GetQueryString("siteTemplateDir"); var onlineTemplateName = AuthRequest.GetQueryString("onlineTemplateName"); if (!string.IsNullOrEmpty(siteTemplateDir)) { HihSiteTemplateDir.Value = siteTemplateDir; ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.False)); BtnNext_Click(null, EventArgs.Empty); } else if (!string.IsNullOrEmpty(onlineTemplateName)) { HihOnlineTemplateName.Value = onlineTemplateName; ControlUtils.SelectSingleItem(RblSource, ETriStateUtils.GetValue(ETriState.All)); BtnNext_Click(null, EventArgs.Empty); } BtnSubmit.Attributes.Add("onclick", PageLoading()); BtnSubmit.Attributes.Add("onclick", PageLoading()); }
private int Validate_SiteInfo(out string errorMessage) { try { var isRoot = TranslateUtils.ToBool(RblIsRoot.SelectedValue); // 是否主站 var parentSiteId = 0; var siteDir = string.Empty; var domainName = string.Empty; if (DirectoryUtils.IsSystemDirectory(TbSiteDir.Text) || DirectoryUtils.IsWebSiteDirectory(TbSiteDir.Text)) { errorMessage = "文件夹名称不能为系统文件夹名称!"; return(0); } parentSiteId = TranslateUtils.ToInt(DdlParentId.SelectedValue); siteDir = TbSiteDir.Text; var list = DataProvider.SiteDao.GetLowerSiteDirList(parentSiteId); if (list.IndexOf(siteDir.ToLower()) != -1) { errorMessage = "已存在相同的发布路径!"; return(0); } if (!DirectoryUtils.IsDirectoryNameCompliant(siteDir)) { errorMessage = "文件夹名称不符合系统要求!"; return(0); } if (isRoot == false)//如果不是主站 { if (String.IsNullOrWhiteSpace(TbDomainName.Text)) { errorMessage = "网站域名不能为空!"; return(0); } else { String[] domainNames = TbDomainName.Text.Split(';'); foreach (String domain in domainNames) { if (SystemManager.SiteList.ContainsKey(domain)) { errorMessage = "域名“" + domain + "”已被其他网站占用,请选择其他域名!"; return(0); } else if (domainName.Length > 0) { domainName += ";" + domain; } else { domainName += ";" + domain; } } } if (domainName.Split(';').Length > 3) { errorMessage = "一个网站最多只能绑定3个域名,而您绑定了" + domainName.Split(';').Length + "个,请删除多余的域名!"; return(0); } } var nodeInfo = new ChannelInfo(); nodeInfo.ChannelName = nodeInfo.IndexName = "首页"; nodeInfo.ParentId = 0; nodeInfo.ContentModelPluginId = string.Empty; var tableName = string.Empty; var tableRule = ETableRuleUtils.GetEnumType(RblTableRule.SelectedValue); if (tableRule == ETableRule.Choose) { tableName = DdlTableChoose.SelectedValue; } else if (tableRule == ETableRule.HandWrite) { tableName = TbTableHandWrite.Text; if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, DataProvider.ContentDao.TableColumnsDefault); } } var siteInfo = new SiteInfo { SiteName = AttackUtils.FilterXss(TbSiteName.Text), DomainName = domainName, SiteDir = siteDir, TableName = tableName, ParentId = parentSiteId, IsRoot = isRoot }; siteInfo.Additional.IsCheckContentLevel = TranslateUtils.ToBool(RblIsCheckContentUseLevel.SelectedValue); if (siteInfo.Additional.IsCheckContentLevel) { siteInfo.Additional.CheckContentLevel = TranslateUtils.ToInt(DdlCheckContentLevel.SelectedValue); } siteInfo.Additional.Charset = DdlCharset.SelectedValue; var siteId = DataProvider.ChannelDao.InsertSiteInfo(nodeInfo, siteInfo, AuthRequest.AdminName); if (string.IsNullOrEmpty(tableName)) { tableName = ContentDao.GetContentTableName(siteId); DataProvider.ContentDao.CreateContentTable(tableName, DataProvider.ContentDao.TableColumnsDefault); DataProvider.SiteDao.UpdateTableName(siteId, tableName); } if (AuthRequest.AdminPermissionsImpl.IsSystemAdministrator && !AuthRequest.AdminPermissionsImpl.IsConsoleAdministrator) { var siteIdList = AuthRequest.AdminPermissionsImpl.GetSiteIdList() ?? new List <int>(); siteIdList.Add(siteId); var adminInfo = AdminManager.GetAdminInfoByUserId(AuthRequest.AdminId); DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo, TranslateUtils.ObjectCollectionToString(siteIdList)); } AuthRequest.AddAdminLog("创建新站点", $"站点名称:{AttackUtils.FilterXss(TbSiteName.Text)}"); errorMessage = string.Empty; return(siteId); } catch (Exception e) { errorMessage = e.Message; return(0); } }