Пример #1
0
        public string GetFunctionOrChannelOrContentSelectScript(WebMenuInfo menuInfo)
        {
            if (ENavigationTypeUtils.Equals(menuInfo.NavigationType, ENavigationType.Function))
            {
                if (menuInfo.FunctionId > 0)
                {
                    var functionName = KeywordManager.GetFunctionName(EKeywordTypeUtils.GetEnumType(menuInfo.KeywordType), menuInfo.FunctionId);
                    return($@"selectKeyword(""{menuInfo.KeywordType},{menuInfo.FunctionId},{functionName}"")");
                }
            }
            else if (ENavigationTypeUtils.Equals(menuInfo.NavigationType, ENavigationType.Site))
            {
                if (menuInfo.ContentId > 0)
                {
                    var tableStyle = NodeManager.GetTableStyle(PublishmentSystemInfo, menuInfo.ChannelId);
                    var tableName  = NodeManager.GetTableName(PublishmentSystemInfo, menuInfo.ChannelId);

                    var contentInfo = DataProvider.ContentDao.GetContentInfo(tableStyle, tableName, menuInfo.ContentId);

                    var pageUrl = PageUtilityWX.GetContentUrl(PublishmentSystemInfo, contentInfo);

                    return
                        ($@"contentSelect(""{contentInfo.Title}"", ""{menuInfo.ChannelId}"", ""{menuInfo.ContentId}"", ""{pageUrl}"")");
                }
                else if (menuInfo.ChannelId > 0)
                {
                    var nodeNames = NodeManager.GetNodeNameNavigation(PublishmentSystemId, menuInfo.ChannelId);
                    var pageUrl   = PageUtilityWX.GetChannelUrl(PublishmentSystemInfo, NodeManager.GetNodeInfo(PublishmentSystemId, menuInfo.ChannelId));
                    return($"selectChannel('{nodeNames}', '{menuInfo.ChannelId}', '{pageUrl}');");
                }
            }

            return(string.Empty);
        }
Пример #2
0
        public static string ParseWebMenu(PublishmentSystemInfo publishmentSystemInfo)
        {
            if (publishmentSystemInfo.Additional.WxIsWebMenu && !string.IsNullOrEmpty(publishmentSystemInfo.Additional.WxWebMenuType))
            {
                var directoryUrl = SiteFilesAssets.GetUrl(publishmentSystemInfo.Additional.ApiUrl, $"weixin/components/webMenu/{publishmentSystemInfo.Additional.WxWebMenuType}");
                if (PageUtils.IsProtocolUrl(publishmentSystemInfo.PublishmentSystemUrl))
                {
                    directoryUrl = PageUtils.AddProtocolToUrl(SiteFilesAssets.GetUrl(publishmentSystemInfo.Additional.ApiUrl, $"weixin/components/webMenu/{publishmentSystemInfo.Additional.WxWebMenuType}"));
                }

                var menuPath = SiteFilesAssets.GetPath($"weixin/components/webMenu/{publishmentSystemInfo.Additional.WxWebMenuType}/template.html");
                var menuHtml = StlCacheManager.FileContent.GetContentByFilePath(menuPath, ECharset.utf_8);

                var startIndex   = menuHtml.IndexOf("<!--menu-->");
                var endIndex     = menuHtml.IndexOf("<!--menu-->", startIndex + 1);
                var menuTemplate = menuHtml.Substring(startIndex, endIndex - startIndex);

                var startSubIndex   = menuTemplate.IndexOf("<!--submenu-->");
                var endSubIndex     = menuTemplate.IndexOf("<!--submenu-->", startSubIndex + 1);
                var subMenuTemplate = menuTemplate.Substring(startSubIndex, endSubIndex - startSubIndex);

                var menuBuilder  = new StringBuilder();
                var menuInfoList = DataProviderWX.WebMenuDAO.GetMenuInfoList(publishmentSystemInfo.PublishmentSystemId, 0);

                var index = 0;
                foreach (var menuInfo in menuInfoList)
                {
                    var subMenuBuilder  = new StringBuilder();
                    var subMenuInfoList = DataProviderWX.WebMenuDAO.GetMenuInfoList(publishmentSystemInfo.PublishmentSystemId, menuInfo.ID);

                    if (subMenuInfoList != null && subMenuInfoList.Count > 0)
                    {
                        menuInfo.NavigationType = ENavigationTypeUtils.GetValue(ENavigationType.Url);
                        menuInfo.Url            = PageUtils.UnclickedUrl;

                        foreach (var subMenuInfo in subMenuInfoList)
                        {
                            var subMenu = subMenuTemplate.Replace("{{url}}", GetNavigationUrl(publishmentSystemInfo, ENavigationTypeUtils.GetEnumType(subMenuInfo.NavigationType), EKeywordTypeUtils.GetEnumType(subMenuInfo.KeywordType), subMenuInfo.FunctionID, subMenuInfo.ChannelID, subMenuInfo.ContentID, subMenuInfo.Url));
                            subMenu = subMenu.Replace("{{menuName}}", subMenuInfo.MenuName);
                            subMenuBuilder.Append(subMenu);
                        }
                    }
                    var menu = menuTemplate.Substring(0, startSubIndex) + subMenuBuilder.ToString() + menuTemplate.Substring(endSubIndex);

                    menu = menu.Replace("{{url}}", GetNavigationUrl(publishmentSystemInfo, ENavigationTypeUtils.GetEnumType(menuInfo.NavigationType), EKeywordTypeUtils.GetEnumType(menuInfo.KeywordType), menuInfo.FunctionID, menuInfo.ChannelID, menuInfo.ContentID, menuInfo.Url));
                    menu = menu.Replace("{{index}}", index.ToString());
                    menu = menu.Replace("{{menuName}}", menuInfo.MenuName);
                    menuBuilder.Append(menu);
                    index++;
                }

                menuHtml = menuHtml.Substring(0, startIndex) + menuBuilder.ToString() + menuHtml.Substring(endIndex);

                return($@"
<link rel=""stylesheet"" type=""text/css"" href=""{directoryUrl}/style.css"" />
<script type=""text/javascript"" src=""{directoryUrl}/script.js""></script>
{menuHtml}");
            }
            return(string.Empty);
        }
Пример #3
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("PublishmentSystemID");
            menuID   = TranslateUtils.ToInt(GetQueryString("menuID"));
            parentID = TranslateUtils.ToInt(GetQueryString("parentID"));

            if (!IsPostBack)
            {
                ENavigationTypeUtils.AddListItems(ddlNavigationType);

                var menuInfo = DataProviderWX.WebMenuDAO.GetMenuInfo(menuID);
                if (menuInfo == null)
                {
                    menuID = 0;
                }

                if (menuID == 0)
                {
                    ltlPageTitle.Text = $"添加{(parentID == 0 ? "主" : "子")}菜单";
                }
                else
                {
                    ltlPageTitle.Text = $"修改{(parentID == 0 ? "主" : "子")}菜单({menuInfo.MenuName})";

                    tbMenuName.Text = menuInfo.MenuName;
                    ControlUtils.SelectListItems(ddlNavigationType, menuInfo.NavigationType);
                    tbUrl.Text     = menuInfo.Url;
                    ltlScript.Text = $"<script>{GetFunctionOrChannelOrContentSelectScript(menuInfo)}</script>";
                }

                ddlNavigationType_OnSelectedIndexChanged(null, EventArgs.Empty);

                btnFunctionSelect.Attributes.Add("onclick", "parent." + Modal.FunctionSelect.GetOpenWindowString(PublishmentSystemID, "selectKeyword"));

                btnContentSelect.Attributes.Add("onclick", "parent." + Modal.ContentSelect.GetOpenWindowString(PublishmentSystemID, false, "contentSelect"));
                btnChannelSelect.Attributes.Add("onclick", "parent." + CMS.BackgroundPages.Modal.ChannelSelect.GetOpenWindowString(PublishmentSystemID));
            }
        }
Пример #4
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("PublishmentSystemId");
            _menuId   = Body.GetQueryInt("menuID");
            _parentId = Body.GetQueryInt("parentID");

            if (!IsPostBack)
            {
                ENavigationTypeUtils.AddListItems(DdlNavigationType);

                var menuInfo = DataProviderWx.WebMenuDao.GetMenuInfo(_menuId);
                if (menuInfo == null)
                {
                    _menuId = 0;
                }

                if (_menuId == 0)
                {
                    LtlPageTitle.Text = $"添加{(_parentId == 0 ? "主" : "子")}菜单";
                }
                else
                {
                    LtlPageTitle.Text = $"修改{(_parentId == 0 ? "主" : "子")}菜单({menuInfo.MenuName})";

                    TbMenuName.Text = menuInfo.MenuName;
                    ControlUtils.SelectListItems(DdlNavigationType, menuInfo.NavigationType);
                    TbUrl.Text     = menuInfo.Url;
                    LtlScript.Text = $"<script>{GetFunctionOrChannelOrContentSelectScript(menuInfo)}</script>";
                }

                ddlNavigationType_OnSelectedIndexChanged(null, EventArgs.Empty);

                BtnFunctionSelect.Attributes.Add("onclick", "parent." + ModalFunctionSelect.GetOpenWindowString(PublishmentSystemId, "selectKeyword"));

                BtnContentSelect.Attributes.Add("onclick", "parent." + ModalContentSelect.GetOpenWindowString(PublishmentSystemId, false, "contentSelect"));
                BtnChannelSelect.Attributes.Add("onclick", "parent." + ModalChannelSelect.GetOpenWindowString(PublishmentSystemId));
            }
        }
Пример #5
0
        public void ddlNavigationType_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var isHideAll = false;

            if (_parentId == 0 && _menuId > 0)
            {
                var childrenCount = DataProviderWx.WebMenuDao.GetCount(PublishmentSystemId, _menuId);
                if (childrenCount > 0)
                {
                    isHideAll = true;
                }
            }

            if (isHideAll)
            {
                PhNavigationType.Visible = PhUrl.Visible = PhFunction.Visible = PhSite.Visible = false;
            }
            else
            {
                var navigationType = ENavigationTypeUtils.GetEnumType(DdlNavigationType.SelectedValue);

                PhUrl.Visible = PhFunction.Visible = PhSite.Visible = false;

                if (navigationType == ENavigationType.Url)
                {
                    PhUrl.Visible = true;
                }
                else if (navigationType == ENavigationType.Function)
                {
                    PhFunction.Visible = true;
                }
                else if (navigationType == ENavigationType.Site)
                {
                    PhSite.Visible = true;
                }
            }
        }
Пример #6
0
        public void ddlNavigationType_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var isHideAll = false;

            if (parentID == 0 && menuID > 0)
            {
                var childrenCount = DataProviderWX.WebMenuDAO.GetCount(PublishmentSystemID, menuID);
                if (childrenCount > 0)
                {
                    isHideAll = true;
                }
            }

            if (isHideAll)
            {
                phNavigationType.Visible = phUrl.Visible = phFunction.Visible = phSite.Visible = false;
            }
            else
            {
                var navigationType = ENavigationTypeUtils.GetEnumType(ddlNavigationType.SelectedValue);

                phUrl.Visible = phFunction.Visible = phSite.Visible = false;

                if (navigationType == ENavigationType.Url)
                {
                    phUrl.Visible = true;
                }
                else if (navigationType == ENavigationType.Function)
                {
                    phFunction.Visible = true;
                }
                else if (navigationType == ENavigationType.Site)
                {
                    phSite.Visible = true;
                }
            }
        }
Пример #7
0
        public void Sync(int publishmentSystemID)
        {
            DeleteAll(publishmentSystemID);

            var menuInfoList = DataProviderWX.MenuDAO.GetMenuInfoList(publishmentSystemID, 0);

            foreach (var menuInfo in menuInfoList)
            {
                var navigationType = ENavigationType.Url;
                if (menuInfo.MenuType == EMenuType.Site)
                {
                    navigationType = ENavigationType.Site;
                }
                else if (menuInfo.MenuType == EMenuType.Keyword)
                {
                    navigationType = ENavigationType.Function;
                }
                var keywordType = EKeywordType.Text;
                var functionID  = 0;
                if (menuInfo.MenuType == EMenuType.Keyword && !string.IsNullOrEmpty(menuInfo.Keyword))
                {
                    var keywordID = DataProviderWX.KeywordMatchDAO.GetKeywordIDByMPController(publishmentSystemID, menuInfo.Keyword);
                    if (keywordID > 0)
                    {
                        var keywordInfo = DataProviderWX.KeywordDAO.GetKeywordInfo(keywordID);
                        functionID = KeywordManager.GetFunctionID(keywordInfo);
                    }
                }

                var webMenuInfo = new WebMenuInfo {
                    PublishmentSystemID = publishmentSystemID, MenuName = menuInfo.MenuName, NavigationType = ENavigationTypeUtils.GetValue(navigationType), Url = menuInfo.Url, ChannelID = menuInfo.ChannelID, ContentID = menuInfo.ContentID, KeywordType = EKeywordTypeUtils.GetValue(keywordType), FunctionID = functionID, ParentID = 0
                };

                var menuID = Insert(webMenuInfo);

                var subMenuInfoList = DataProviderWX.MenuDAO.GetMenuInfoList(publishmentSystemID, menuInfo.MenuID);
                if (subMenuInfoList != null && subMenuInfoList.Count > 0)
                {
                    foreach (var subMenuInfo in subMenuInfoList)
                    {
                        navigationType = ENavigationType.Url;
                        if (subMenuInfo.MenuType == EMenuType.Site)
                        {
                            navigationType = ENavigationType.Site;
                        }
                        else if (subMenuInfo.MenuType == EMenuType.Keyword)
                        {
                            navigationType = ENavigationType.Function;
                        }
                        keywordType = EKeywordType.Text;
                        functionID  = 0;
                        if (subMenuInfo.MenuType == EMenuType.Keyword && !string.IsNullOrEmpty(subMenuInfo.Keyword))
                        {
                            var keywordID = DataProviderWX.KeywordMatchDAO.GetKeywordIDByMPController(publishmentSystemID, subMenuInfo.Keyword);
                            if (keywordID > 0)
                            {
                                var keywordInfo = DataProviderWX.KeywordDAO.GetKeywordInfo(keywordID);
                                functionID = KeywordManager.GetFunctionID(keywordInfo);
                            }
                        }

                        var subWebMenuInfo = new WebMenuInfo {
                            PublishmentSystemID = publishmentSystemID, MenuName = subMenuInfo.MenuName, NavigationType = ENavigationTypeUtils.GetValue(navigationType), Url = subMenuInfo.Url, ChannelID = subMenuInfo.ChannelID, ContentID = subMenuInfo.ContentID, KeywordType = EKeywordTypeUtils.GetValue(keywordType), FunctionID = functionID, ParentID = menuID
                        };

                        Insert(subWebMenuInfo);
                    }
                }
            }
        }
Пример #8
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (Page.IsPostBack && Page.IsValid)
            {
                try
                {
                    var menuInfo = new WebMenuInfo();
                    if (_menuId > 0)
                    {
                        menuInfo = DataProviderWx.WebMenuDao.GetMenuInfo(_menuId);
                    }

                    menuInfo.MenuName            = TbMenuName.Text;
                    menuInfo.ParentId            = _parentId;
                    menuInfo.PublishmentSystemId = PublishmentSystemId;
                    menuInfo.NavigationType      = DdlNavigationType.SelectedValue;

                    if (ENavigationTypeUtils.Equals(menuInfo.NavigationType, ENavigationType.Url))
                    {
                        menuInfo.Url = TbUrl.Text;
                    }
                    else if (ENavigationTypeUtils.Equals(menuInfo.NavigationType, ENavigationType.Function))
                    {
                        var keywordType = Request.Form["keywordType"];
                        var functionId  = TranslateUtils.ToInt(Request.Form["functionID"]);
                        if (!string.IsNullOrEmpty(keywordType) && functionId > 0)
                        {
                            menuInfo.KeywordType = keywordType;
                            menuInfo.FunctionId  = functionId;
                        }
                        else
                        {
                            FailMessage("菜单保存失败,必须选择微功能页面,请点击下方按钮进行选择");
                            return;
                        }
                    }
                    else if (ENavigationTypeUtils.Equals(menuInfo.NavigationType, ENavigationType.Site))
                    {
                        var idsCollection = Request.Form["idsCollection"];
                        if (!string.IsNullOrEmpty(idsCollection))
                        {
                            menuInfo.ChannelId = TranslateUtils.ToInt(idsCollection.Split('_')[0]);
                            menuInfo.ContentId = TranslateUtils.ToInt(idsCollection.Split('_')[1]);
                        }

                        if (menuInfo.ChannelId == 0 && menuInfo.ContentId == 0)
                        {
                            FailMessage("菜单保存失败,必须选择微网站页面,请点击下方按钮进行选择");
                            return;
                        }
                    }

                    if (_menuId > 0)
                    {
                        DataProviderWx.WebMenuDao.Update(menuInfo);
                        SuccessMessage("底部导航菜单修改成功!");
                    }
                    else
                    {
                        _menuId = DataProviderWx.WebMenuDao.Insert(menuInfo);
                        SuccessMessage("底部导航菜单新增成功!");
                    }

                    var redirectUrl = PageWebMenu.GetRedirectUrl(PublishmentSystemId, _parentId, _menuId);
                    LtlPageTitle.Text += $@"<script>parent.redirect('{redirectUrl}');</script>";
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "底部导航菜单配置失败!");
                }
            }
        }
Пример #9
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            PageUtils.CheckRequestParameter("PublishmentSystemID");
            searchID = TranslateUtils.ToInt(GetQueryString("searchID"));

            if (!IsPostBack)
            {
                var pageTitle = searchID > 0 ? "编辑微搜索" : "添加微搜索";
                BreadCrumb(AppManager.WeiXin.LeftMenu.ID_Function, AppManager.WeiXin.LeftMenu.Function.ID_Search, pageTitle, AppManager.WeiXin.Permission.WebSite.Search);
                ltlPageTitle.Text = pageTitle;

                ltlImageUrl.Text =
                    $@"<img id=""preview_imageUrl"" src=""{SearchManager.GetImageUrl(PublishmentSystemInfo,
                        string.Empty)}"" width=""370"" align=""middle"" />";
                ltlContentImageUrl.Text =
                    $@"<img id=""preview_contentImageUrl"" src=""{SearchManager.GetContentImageUrl(
                        PublishmentSystemInfo, string.Empty)}"" width=""370"" align=""middle"" />";

                ltlSearchNavs.Text = $@"
itemController.openFunctionSelect = function(itemIndex){{
    var openString = ""{Modal.FunctionSelect.GetOpenWindowStringByItemIndex(PublishmentSystemID, "selectFunction",
                    "itemIndexValue")}"".replace(""itemIndexValue"", itemIndex);
    openString = openString.substr(0, openString.indexOf(';'));
    eval(openString);
}};
itemController.openChannelSelect = function(itemIndex){{
    var openString = ""{CMS.BackgroundPages.Modal.ChannelSelect.GetOpenWindowStringByItemIndex(
                    PublishmentSystemID, "selectChannel", "itemIndexValue")}"".replace(""itemIndexValue"", itemIndex);
    openString = openString.substr(0, openString.indexOf(';'));
    eval(openString);
}};
itemController.openContentSelect = function(itemIndex){{
    var openString = ""{Modal.ContentSelect.GetOpenWindowStringByItemIndex(PublishmentSystemID, "selectContent",
                    "itemIndexValue")}"".replace(""itemIndexValue"", itemIndex);
    openString = openString.substr(0, openString.indexOf(';'));
    eval(openString);
}};
itemController.openImageCssClassSelect = function(itemIndex){{
    var openString = ""{Modal.ImageCssClassSelect.GetOpenWindowStringByItemIndex(PublishmentSystemID,
                    "selectImageCssClass", "itemIndexValue")}"".replace(""itemIndexValue"", itemIndex);
    openString = openString.substr(0, openString.indexOf(';'));
    eval(openString);
}};
";

                if (searchID == 0)
                {
                    ltlSearchNavs.Text += "itemController.itemCount = 2;itemController.items = [{navigationType : 'Url', imageCssClass : 'fa fa-angle-double-down'}, {navigationType : 'Url', imageCssClass : 'fa fa-angle-double-down'}];";
                }
                else
                {
                    var searchInfo = DataProviderWX.SearchDAO.GetSearchInfo(searchID);

                    tbKeywords.Text     = DataProviderWX.KeywordDAO.GetKeywords(searchInfo.KeywordID);
                    cbIsEnabled.Checked = !searchInfo.IsDisabled;
                    tbTitle.Text        = searchInfo.Title;
                    if (!string.IsNullOrEmpty(searchInfo.ImageUrl))
                    {
                        ltlImageUrl.Text =
                            $@"<img id=""preview_imageUrl"" src=""{PageUtility.ParseNavigationUrl(
                                PublishmentSystemInfo, searchInfo.ImageUrl)}"" width=""370"" align=""middle"" />";
                    }
                    tbSummary.Text = searchInfo.Summary;

                    cbIsOutsiteSearch.Checked = searchInfo.IsOutsiteSearch;
                    cbIsNavigation.Checked    = searchInfo.IsNavigation;
                    tbNavTitleColor.Text      = searchInfo.NavTitleColor;
                    tbNavImageColor.Text      = searchInfo.NavImageColor;
                    if (!string.IsNullOrEmpty(searchInfo.ContentImageUrl))
                    {
                        ltlContentImageUrl.Text =
                            $@"<img id=""preview_contentImageUrl"" src=""{PageUtility.ParseNavigationUrl(
                                PublishmentSystemInfo, searchInfo.ContentImageUrl)}"" width=""370"" align=""middle"" />";
                    }

                    var searchNavigationInfoList = DataProviderWX.SearchNavigationDAO.GetSearchNavigationInfoList(PublishmentSystemID, searchID);
                    var itemBuilder = new StringBuilder();
                    foreach (var searchNavigationInfo in searchNavigationInfoList)
                    {
                        var searchPageTitle = string.Empty;

                        if (searchNavigationInfo.NavigationType == ENavigationTypeUtils.GetValue(ENavigationType.Url))
                        {
                            searchPageTitle = string.Empty;
                        }
                        else if (searchNavigationInfo.NavigationType == ENavigationTypeUtils.GetValue(ENavigationType.Function))
                        {
                            searchPageTitle = KeywordManager.GetFunctionName(EKeywordTypeUtils.GetEnumType(searchNavigationInfo.KeywordType), searchNavigationInfo.FunctionID);
                        }
                        else if (searchNavigationInfo.NavigationType == ENavigationTypeUtils.GetValue(ENavigationType.Site))
                        {
                            if (searchNavigationInfo.ContentID > 0)
                            {
                                var tableStyle  = NodeManager.GetTableStyle(PublishmentSystemInfo, searchNavigationInfo.ChannelID);
                                var tableName   = NodeManager.GetTableName(PublishmentSystemInfo, searchNavigationInfo.ChannelID);
                                var contentInfo = DataProvider.ContentDAO.GetContentInfo(tableStyle, tableName, searchNavigationInfo.ContentID);

                                var pageUrl = PageUtilityWX.GetContentUrl(PublishmentSystemInfo, contentInfo);
                                searchPageTitle = $@"内容页:{contentInfo.Title}";
                            }
                            else
                            {
                                var nodeNames = NodeManager.GetNodeNameNavigation(PublishmentSystemID, searchNavigationInfo.ChannelID);
                                var pageUrl   = PageUtility.GetChannelUrl(PublishmentSystemInfo, NodeManager.GetNodeInfo(PublishmentSystemID, searchNavigationInfo.ChannelID));
                                searchPageTitle = $@"栏目页:{nodeNames}";
                            }
                        }

                        itemBuilder.AppendFormat("{{id: '{0}', title: '{1}',pageTitle: '{2}', url: '{3}', imageCssClass: '{4}',navigationType:'{5}',keywordType:'{6}',functionID:'{7}',channelID:'{8}',contentID:'{9}'}},", searchNavigationInfo.ID, searchNavigationInfo.Title, searchPageTitle, searchNavigationInfo.Url, searchNavigationInfo.ImageCssClass, searchNavigationInfo.NavigationType, searchNavigationInfo.KeywordType, searchNavigationInfo.FunctionID, searchNavigationInfo.ChannelID, searchNavigationInfo.ContentID);
                    }

                    if (itemBuilder.Length > 0)
                    {
                        itemBuilder.Length--;
                    }

                    ltlSearchNavs.Text += $@"
itemController.itemCount = {searchNavigationInfoList.Count};itemController.items = [{itemBuilder.ToString()}];";

                    imageUrl.Value        = searchInfo.ImageUrl;
                    contentImageUrl.Value = searchInfo.ContentImageUrl;

                    tbImageAreaTitle.Text = searchInfo.ImageAreaTitle;
                    tbTextAreaTitle.Text  = searchInfo.TextAreaTitle;

                    if (searchInfo.ImageAreaChannelID > 0)
                    {
                        var nodeNames = NodeManager.GetNodeNameNavigation(PublishmentSystemID, searchInfo.ImageAreaChannelID);
                        ltlSearchNavs.Text += $@"
$(document).ready(function() {{
    selectChannel(1, '{nodeNames}', {searchInfo.ImageAreaChannelID});
}});
";
                    }
                    if (searchInfo.TextAreaChannelID > 0)
                    {
                        var nodeNames = NodeManager.GetNodeNameNavigation(PublishmentSystemID, searchInfo.TextAreaChannelID);
                        ltlSearchNavs.Text += $@"
$(document).ready(function() {{
    selectChannel(2, '{nodeNames}', {searchInfo.TextAreaChannelID});
}});
";
                    }
                }

                btnImageChannelSelect.Attributes.Add("onclick", CMS.BackgroundPages.Modal.ChannelSelect.GetOpenWindowStringByItemIndex(PublishmentSystemID, "selectChannel", "1"));
                btnTextChannelSelect.Attributes.Add("onclick", CMS.BackgroundPages.Modal.ChannelSelect.GetOpenWindowStringByItemIndex(PublishmentSystemID, "selectChannel", "2"));

                btnReturn.Attributes.Add("onclick",
                                         $@"location.href=""{BackgroundSearch.GetRedirectUrl(PublishmentSystemID)}"";return false");
            }
        }
Пример #10
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (Page.IsPostBack && Page.IsValid)
            {
                var selectedStep = 0;
                if (phStep1.Visible)
                {
                    selectedStep = 1;
                }
                else if (phStep2.Visible)
                {
                    selectedStep = 2;
                }
                else if (phStep3.Visible)
                {
                    selectedStep = 3;
                }

                phStep1.Visible = phStep2.Visible = phStep3.Visible = false;

                if (selectedStep == 1)
                {
                    var isConflict       = false;
                    var conflictKeywords = string.Empty;
                    if (!string.IsNullOrEmpty(tbKeywords.Text))
                    {
                        if (searchID > 0)
                        {
                            var searchInfo = DataProviderWX.SearchDAO.GetSearchInfo(searchID);
                            isConflict = KeywordManager.IsKeywordUpdateConflict(PublishmentSystemID, searchInfo.KeywordID, PageUtils.FilterXSS(tbKeywords.Text), out conflictKeywords);
                        }
                        else
                        {
                            isConflict = KeywordManager.IsKeywordInsertConflict(PublishmentSystemID, PageUtils.FilterXSS(tbKeywords.Text), out conflictKeywords);
                        }
                    }

                    if (isConflict)
                    {
                        FailMessage($"触发关键词“{conflictKeywords}”已存在,请设置其他关键词");
                        phStep1.Visible = true;
                    }
                    else
                    {
                        phStep2.Visible = true;
                    }
                }
                else if (selectedStep == 2)
                {
                    var isItemReady = true;

                    if (isItemReady)
                    {
                        var itemCount = TranslateUtils.ToInt(Request.Form["itemCount"]);

                        if (itemCount > 0)
                        {
                            var itemIDList        = TranslateUtils.StringCollectionToIntList(Request.Form["itemID"]);
                            var imageCssClassList = TranslateUtils.StringCollectionToStringList(Request.Form["itemImageCssClass"]);
                            var keywordTypeList   = TranslateUtils.StringCollectionToStringList(Request.Form["itemKeywordType"]);
                            var functionIDList    = TranslateUtils.StringCollectionToIntList(Request.Form["itemFunctionID"]);
                            var channelIDList     = TranslateUtils.StringCollectionToIntList(Request.Form["itemChannelID"]);
                            var contentIDList     = TranslateUtils.StringCollectionToIntList(Request.Form["itemContentID"]);

                            var titleList          = TranslateUtils.StringCollectionToStringList(Request.Form["itemTitle"]);
                            var navigationTypeList = TranslateUtils.StringCollectionToStringList(Request.Form["itemNavigationType"]);
                            var urlList            = TranslateUtils.StringCollectionToStringList(Request.Form["itemUrl"]);

                            var navigationInfoList = new List <SearchNavigationInfo>();
                            for (var i = 0; i < itemCount; i++)
                            {
                                var navigationInfo = new SearchNavigationInfo {
                                    ID = itemIDList[i], PublishmentSystemID = PublishmentSystemID, SearchID = searchID, Title = titleList[i], Url = urlList[i], ImageCssClass = imageCssClassList[i], NavigationType = navigationTypeList[i], KeywordType = keywordTypeList[i], FunctionID = functionIDList[i], ChannelID = channelIDList[i], ContentID = contentIDList[i]
                                };

                                if (string.IsNullOrEmpty(navigationInfo.Title))
                                {
                                    FailMessage("保存失败,导航链接名称为必填项");
                                    isItemReady = false;
                                }
                                if (string.IsNullOrEmpty(navigationInfo.ImageCssClass))
                                {
                                    FailMessage("保存失败,导航链接图标为必填项");
                                    isItemReady = false;
                                }
                                if (navigationInfo.NavigationType == ENavigationTypeUtils.GetValue(ENavigationType.Url) && string.IsNullOrEmpty(navigationInfo.Url))
                                {
                                    FailMessage("保存失败,导航链接地址为必填项");
                                    isItemReady = false;
                                }

                                navigationInfoList.Add(navigationInfo);
                            }

                            if (isItemReady)
                            {
                                DataProviderWX.SearchNavigationDAO.DeleteAllNotInIDList(PublishmentSystemID, searchID, itemIDList);

                                foreach (var navigationInfo in navigationInfoList)
                                {
                                    if (navigationInfo.ID > 0)
                                    {
                                        DataProviderWX.SearchNavigationDAO.Update(navigationInfo);
                                    }
                                    else
                                    {
                                        DataProviderWX.SearchNavigationDAO.Insert(navigationInfo);
                                    }
                                }
                            }
                        }
                    }

                    if (isItemReady)
                    {
                        phStep3.Visible = true;
                        btnSubmit.Text  = "确 认";
                    }
                    else
                    {
                        phStep2.Visible = true;
                    }
                }
                else if (selectedStep == 3)
                {
                    var searchInfo = new SearchInfo();
                    if (searchID > 0)
                    {
                        searchInfo = DataProviderWX.SearchDAO.GetSearchInfo(searchID);
                    }
                    searchInfo.PublishmentSystemID = PublishmentSystemID;
                    searchInfo.KeywordID           = DataProviderWX.KeywordDAO.GetKeywordID(PublishmentSystemID, searchID > 0, tbKeywords.Text, EKeywordType.Search, searchInfo.KeywordID);
                    searchInfo.IsDisabled          = !cbIsEnabled.Checked;
                    searchInfo.Title           = PageUtils.FilterXSS(tbTitle.Text);
                    searchInfo.ImageUrl        = imageUrl.Value;;
                    searchInfo.Summary         = tbSummary.Text;
                    searchInfo.ContentImageUrl = contentImageUrl.Value;

                    searchInfo.IsOutsiteSearch = cbIsOutsiteSearch.Checked;
                    searchInfo.IsNavigation    = cbIsNavigation.Checked;
                    searchInfo.NavTitleColor   = tbNavTitleColor.Text;
                    searchInfo.NavImageColor   = tbNavImageColor.Text;

                    searchInfo.ImageAreaTitle     = tbImageAreaTitle.Text;
                    searchInfo.ImageAreaChannelID = TranslateUtils.ToInt(Request.Form["imageChannelID"]);
                    searchInfo.TextAreaTitle      = tbTextAreaTitle.Text;
                    searchInfo.TextAreaChannelID  = TranslateUtils.ToInt(Request.Form["textChannelID"]);

                    try
                    {
                        if (searchID > 0)
                        {
                            DataProviderWX.SearchDAO.Update(searchInfo);

                            LogUtils.AddLog(BaiRongDataProvider.AdministratorDao.UserName, "修改微搜索",
                                            $"微搜索:{tbTitle.Text}");
                            SuccessMessage("修改微搜索成功!");
                        }
                        else
                        {
                            searchID = DataProviderWX.SearchDAO.Insert(searchInfo);

                            DataProviderWX.SearchNavigationDAO.UpdateSearchID(PublishmentSystemID, searchID);

                            LogUtils.AddLog(BaiRongDataProvider.AdministratorDao.UserName, "添加微搜索",
                                            $"微搜索:{tbTitle.Text}");
                            SuccessMessage("添加微搜索成功!");
                        }

                        var redirectUrl = BackgroundSearch.GetRedirectUrl(PublishmentSystemID);
                        AddWaitAndRedirectScript(redirectUrl);
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, "微搜索设置失败!");
                    }
                }
            }
        }