protected override void ShowPage() { if (config.Enablemall == 0) //未启用交易服务 { AddErrLine("系统未开启交易服务, 当前页面暂时无法访问!"); return; } else { goodscategoryfid = Discuz.Mall.GoodsCategories.GetGoodsCategoryWithFid(); } headerad = ""; footerad = ""; floatad = ""; disablepostctrl = 0; // 如果商品ID无效 if (goodsid == -1) { AddErrLine("无效的商品ID"); return; } goodsinfo = Goods.GetGoodsInfo(goodsid); if (goodsinfo == null || goodsinfo.Closed > 1) { AddErrLine("不存在的商品ID"); headerad = Advertisements.GetOneHeaderAd("", 0); footerad = Advertisements.GetOneFooterAd("", 0); floatad = Advertisements.GetFloatAd("", 0); return; } UserInfo userinfo = Users.GetUserInfo(goodsinfo.Selleruid); if (userinfo != null) { joindate = Convert.ToDateTime(userinfo.Joindate).ToString("yyyy-MM-dd"); } sb_usercredit = GoodsUserCredits.GetUserCreditJsonData(goodsinfo.Selleruid); creditrulesjsondata = GoodsUserCredits.GetCreditRulesJsonData().ToString(); if (config.Enablemall == 1) //开启普通模式 { forumid = GoodsCategories.GetCategoriesFid(goodsinfo.Categoryid); forum = Forums.GetForumInfo(forumid); if (forum == null) { AddErrLine("当前商品所属分类未绑定相应版块"); return; } forumname = forum.Name; forumnav = ForumUtils.UpdatePathListExtname(forum.Pathlist.Trim(), config.Extname); ///得到广告列表 ///头部 headerad = Advertisements.GetOneHeaderAd("", forumid); footerad = Advertisements.GetOneFooterAd("", forumid); doublead = Advertisements.GetDoubleAd("", forumid); floatad = Advertisements.GetFloatAd("", forumid); // 检查是否具有版主的身份 if (useradminid != 0) { ismoder = Moderators.IsModer(useradminid, userid, forumid) ? 1 : 0; //得到管理组信息 admininfo = AdminGroups.GetAdminGroupInfo(usergroupid); if (admininfo != null) { disablepostctrl = admininfo.Disablepostctrl; } } } goodscategoryinfo = GoodsCategories.GetGoodsCategoryInfoById(goodsinfo.Categoryid); pagetitle = goodsinfo.Title; navhomemenu = Caches.GetForumListMenuDivCache(usergroupid, userid, config.Extname); //验证不通过则返回 if (!IsConditionsValid()) { return; } //编辑器状态 StringBuilder sb = new StringBuilder("var Allowhtml=1;\r\n"); parseurloff = 0; bbcodeoff = 1; if (config.Enablemall == 1) //开启普通模式 { smileyoff = 1 - forum.Allowsmilies; if (forum.Allowbbcode == 1 && usergroupinfo.Allowcusbbcode == 1) { bbcodeoff = 0; } allowimg = forum.Allowimgcode; } else if (config.Enablemall == 2) //当为高级模式时 { if (usergroupinfo.Allowcusbbcode == 1) { bbcodeoff = 0; } allowimg = 1; } sb.Append("var Allowsmilies=" + (1 - smileyoff) + ";\r\n"); sb.Append("var Allowbbcode=" + (1 - bbcodeoff) + ";\r\n"); usesig = ForumUtils.GetCookie("sigstatus") == "0" ? 0 : 1; sb.Append("var Allowimgcode=" + allowimg + ";\r\n"); AddScript(sb.ToString()); if (config.Enablemall == 2) { recommendgoodslist = Goods.GetGoodsRecommendList(goodsinfo.Selleruid, 6, 1, DbProvider.GetInstance().GetGoodsIdCondition((int)MallUtils.OperaCode.NoEuqal, goodsinfo.Goodsid)); } smilietypes = Caches.GetSmilieTypesCache(); if (newpmcount > 0) { pmlist = PrivateMessages.GetPrivateMessageListForIndex(userid, 5, 1, 1); showpmhint = Convert.ToInt32(Users.GetShortUserInfo(userid).Newsletter) > 4; } // 得到pptradelog设置 pptradelog = Utils.StrToInt(ForumUtils.GetCookie("ppp"), config.Ppp); if (pptradelog <= 0) { pptradelog = config.Ppp; } //快速发帖广告 if (config.Enablemall == 1) //开启普通模式 { quickeditorad = Advertisements.GetQuickEditorAD("", forumid); } //更新页面Meta中的Description项, 提高SEO友好性 string metadescritpion = Utils.RemoveHtml(goodsinfo.Message); metadescritpion = metadescritpion.Length > 100 ? metadescritpion.Substring(0, 100) : metadescritpion; UpdateMetaInfo(config.Seokeywords, metadescritpion, config.Seohead); GoodspramsInfo goodspramsInfo = new GoodspramsInfo(); goodspramsInfo.Goodsid = goodsinfo.Goodsid; if (config.Enablemall == 1) //开启普通模式 { goodspramsInfo.Fid = forum.Fid; goodspramsInfo.Jammer = forum.Jammer; goodspramsInfo.Getattachperm = forum.Getattachperm; goodspramsInfo.Showimages = forum.Allowimgcode; } else if (config.Enablemall == 2) //当为高级模式时 { goodspramsInfo.Jammer = 0; goodspramsInfo.Getattachperm = ""; goodspramsInfo.Showimages = 1; } goodspramsInfo.Pageindex = pageid; goodspramsInfo.Usergroupid = usergroupid; goodspramsInfo.Attachimgpost = config.Attachimgpost; goodspramsInfo.Showattachmentpath = config.Showattachmentpath; goodspramsInfo.Hide = 0; goodspramsInfo.Price = 0; goodspramsInfo.Usergroupreadaccess = usergroupinfo.Readaccess; if (ismoder == 1) { goodspramsInfo.Usergroupreadaccess = int.MaxValue; } goodspramsInfo.CurrentUserid = userid; goodspramsInfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo(); goodspramsInfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo(); goodspramsInfo.Smiliesmax = config.Smiliesmax; goodspramsInfo.Bbcodemode = config.Bbcodemode; goodspramsInfo.CurrentUserGroup = usergroupinfo; goodspramsInfo.Sdetail = goodsinfo.Message; goodspramsInfo.Smileyoff = goodsinfo.Smileyoff; goodspramsInfo.Bbcodeoff = goodsinfo.Bbcodeoff; goodspramsInfo.Parseurloff = goodsinfo.Parseurloff; goodspramsInfo.Allowhtml = 1; goodspramsInfo.Sdetail = goodsinfo.Message; message = Goods.MessgeTranfer(goodspramsInfo, GoodsAttachments.GetGoodsAttachmentsByGoodsid(goodsinfo.Goodsid)); forumlistboxoptions = Caches.GetForumListBoxOptionsCache(); tradecount = TradeLogs.GetGoodsTradeLogCount(goodsid); leavewordcount = GoodsLeaveWords.GetGoodsLeaveWordCount(goodsid); pptradelog = 16; ForumUtils.WriteCookie("referer", string.Format(base.ShowGoodsAspxRewrite(goodsinfo.Goodsid))); if (config.Enablemall == 1) //开启普通模式 { ForumUtils.UpdateVisitedForumsOptions(forumid); } visitedforumsoptions = ForumUtils.GetVisitedForumsOptions(config.Visitedforums); //删除留言 if (DNTRequest.GetInt("deleteleaveword", 0) == 1) { isdeleteop = true; int leavewordid = DNTRequest.GetInt("leavewordid", 0); if (leavewordid <= 0) { AddErrLine("您要删除的留言已被删除, 现在转入商品页面"); return; } if (GoodsLeaveWords.DeleteLeaveWordById(leavewordid, userid, goodsinfo.Selleruid, useradminid)) { SetUrl(base.ShowGoodsAspxRewrite(goodsinfo.Goodsid)); SetMetaRefresh(); AddMsgLine("该留言已被删除, 现在转入商品页面<br />(<a href=\"" + base.ShowGoodsAspxRewrite(goodsinfo.Goodsid) + "\">如果您的浏览器没有自动跳转, 请点击这里</a>)<br />"); return; } else { AddErrLine("您的用户身份无效删除该留言, 现在转入商品页面"); return; } } //删除商品 if (DNTRequest.GetInt("deletegoods", 0) == 1) { isdeleteop = true; //是否为卖家或版主 if (Goods.IsSeller(goodsinfo.Goodsid.ToString(), userid) || ismoder == 1) { Goods.DeleteGoods(goodsinfo.Goodsid.ToString(), false); SetUrl(this.ShowGoodsListAspxRewrite(goodsinfo.Categoryid, 1)); SetMetaRefresh(); AddMsgLine("操作成功. <br />(<a href=\"" + this.ShowGoodsListAspxRewrite(goodsinfo.Categoryid, 1) + "\">点击这里返回</a>)<br />"); return; } else { AddErrLine("你不是当前商品的卖家或版主,因此无法删除该商品"); return; } } //如果是提交 if (ispost) { //如果不是提交... if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } if (DNTRequest.GetString("postleaveword") == "add") { //当验证密码正确后,则发送相应留言 Goodsleavewordinfo goodsleavewordinfo = new Goodsleavewordinfo(); goodsleavewordinfo.Ip = DNTRequest.GetIP(); goodsleavewordinfo.Goodsid = goodsinfo.Goodsid; goodsleavewordinfo.Tradelogid = 0; goodsleavewordinfo.Uid = userid; goodsleavewordinfo.Username = username; goodsleavewordinfo.Message = DNTRequest.GetString("message"); goodsleavewordinfo.Isbuyer = goodsinfo.Selleruid != userid ? 1 : 0; if (GoodsLeaveWords.CreateLeaveWord(goodsleavewordinfo, goodsinfo.Selleruid, DNTRequest.GetString("sendnotice") == "on" ? true : false) > 0) { SetUrl(base.ShowGoodsAspxRewrite(goodsinfo.Goodsid)); SetMetaRefresh(); AddMsgLine("您的留言已发布, 现在转入商品页面<br />(<a href=\"" + base.ShowGoodsAspxRewrite(goodsinfo.Goodsid) + "\">如果您的浏览器没有自动跳转, 请点击这里</a>)<br />"); } } else { //当验证密码正确后,则发送相应留言 Goodsleavewordinfo goodsleavewordinfo = GoodsLeaveWords.GetGoodsLeaveWordById(DNTRequest.GetInt("leavewordid", 0)); if (goodsleavewordinfo != null && goodsleavewordinfo.Id > 0) { goodsleavewordinfo.Ip = DNTRequest.GetIP(); goodsleavewordinfo.Uid = userid; goodsleavewordinfo.Username = username; goodsleavewordinfo.Message = DNTRequest.GetString("message"); goodsleavewordinfo.Postdatetime = DateTime.Now; if (GoodsLeaveWords.UpdateLeaveWord(goodsleavewordinfo)) { SetUrl(base.ShowGoodsAspxRewrite(goodsinfo.Goodsid)); SetMetaRefresh(); AddMsgLine("留言更新成功, 现在转入商品页面<br />(<a href=\"" + base.ShowGoodsAspxRewrite(goodsinfo.Goodsid) + "\">如果您的浏览器没有自动跳转, 请点击这里</a>)<br />"); } } else { AddErrLine("当前留言不存在或已被删除"); return; } } } else { goodsinfo.Viewcount += 1; //浏览量加1 Goods.UpdateGoods(goodsinfo); } }
private string condition = ""; //查询条件 protected override void ShowPage() { if (config.Enablemall == 0) //未启用交易模式 { AddErrLine("系统未开启交易模式, 当前页面暂时无法访问!"); return; } else { goodscategoryfid = Discuz.Mall.GoodsCategories.GetGoodsCategoryWithFid(); } forumnav = ""; forumallowrss = 0; if (categoryid <= 0) { AddErrLine("无效的商品分类ID"); return; } if (config.Enablemall == 2) //开启高级模式 { AddLinkRss("mallgoodslist.aspx?categoryid=" + categoryid, "商品列表"); AddErrLine("当前页面在开启商城(高级)模式下无法访问, 系统将会重定向到商品列表页面!"); return; } goodscategoryinfo = GoodsCategories.GetGoodsCategoryInfoById(categoryid); if (goodscategoryinfo != null && goodscategoryinfo.Categoryid > 0) { forumid = GoodsCategories.GetCategoriesFid(goodscategoryinfo.Categoryid); } else { AddErrLine("无效的商品分类ID"); return; } ///得到广告列表 ///头部 headerad = Advertisements.GetOneHeaderAd("", forumid); footerad = Advertisements.GetOneFooterAd("", forumid); pagewordad = Advertisements.GetPageWordAd("", forumid); doublead = Advertisements.GetDoubleAd("", forumid); floatad = Advertisements.GetFloatAd("", forumid); mediaad = Advertisements.GetMediaAd(templatepath, "", forumid); disablepostctrl = 0; if (userid > 0 && useradminid > 0) { admingroupinfo = AdminGroups.GetAdminGroupInfo(usergroupid); } if (admingroupinfo != null) { this.disablepostctrl = admingroupinfo.Disablepostctrl; } if (forumid == -1) { AddLinkRss("tools/rss.aspx", "最新商品"); AddErrLine("无效的商品分类ID"); return; } else { forum = Forums.GetForumInfo(forumid); // 检查是否具有版主的身份 if (useradminid > 0) { ismoder = Moderators.IsModer(useradminid, userid, forumid); } #region 对搜索条件进行检索 string orderStr = "goodsid"; if (DNTRequest.GetString("search").Trim() != "") //进行指定查询 { //所在城市信息 cond = DNTRequest.GetInt("locus_2", -1); if (cond < 1) { condition = ""; } else { locus = Locations.GetLocusByLID(cond); condition = "AND [lid] = " + cond; } //排序的字段 order = DNTRequest.GetInt("order", -1); switch (order) { case 2: orderStr = "expiration"; //到期日 break; case 1: orderStr = "price"; //商品价格 break; default: orderStr = "goodsid"; break; } if (DNTRequest.GetInt("direct", -1) == 0) { direct = 0; } } #endregion if (forum == null) { if (config.Rssstatus == 1) { AddLinkRss("tools/rss.aspx", Utils.EncodeHtml(config.Forumtitle) + " 最新商品"); } AddErrLine("不存在的商品分类ID"); return; } //当版块有外部链接时,则直接跳转 if (forum.Redirect != null && forum.Redirect != string.Empty) { System.Web.HttpContext.Current.Response.Redirect(forum.Redirect); return; } if (forum.Istrade <= 0) { AddErrLine("当前版块不允许商品交易"); forumnav = ""; return; } if (forum.Fid < 1) { if (config.Rssstatus == 1 && forum.Allowrss == 1) { AddLinkRss("tools/" + base.RssAspxRewrite(forum.Fid), Utils.EncodeHtml(forum.Name) + " 最新商品"); } AddErrLine("不存在的商品分类ID"); return; } if (config.Rssstatus == 1) { AddLinkRss("tools/" + base.RssAspxRewrite(forum.Fid), Utils.EncodeHtml(forum.Name) + " 最新商品"); } forumname = forum.Name; pagetitle = Utils.RemoveHtml(forum.Name); subforumcount = forum.Subforumcount; forumnav = ForumUtils.UpdatePathListExtname(forum.Pathlist.Trim(), config.Extname); navhomemenu = Caches.GetForumListMenuDivCache(usergroupid, userid, config.Extname); //更新页面Meta中的Description项, 提高SEO友好性 UpdateMetaInfo(config.Seokeywords, forum.Description, config.Seohead); // 是否显示版块密码提示 1为显示, 0不显示 showforumlogin = 1; // 如果版块未设密码 if (forum.Password == "") { showforumlogin = 0; } else { // 如果检测到相应的cookie正确 if (Utils.MD5(forum.Password) == ForumUtils.GetCookie("forum" + forumid.ToString() + "password")) { showforumlogin = 0; } else { // 如果用户提交的密码正确则保存cookie if (forum.Password == DNTRequest.GetString("forumpassword")) { ForumUtils.WriteCookie("forum" + forumid.ToString() + "password", Utils.MD5(forum.Password)); showforumlogin = 0; } } } if (!Forums.AllowViewByUserId(forum.Permuserlist, userid)) //判断当前用户在当前版块浏览权限 { if (forum.Viewperm == null || forum.Viewperm == string.Empty) //当板块权限为空时,按照用户组权限 { if (useradminid != 1 && (usergroupinfo.Allowvisit != 1 || usergroupinfo.Allowtrade != 1)) { AddErrLine("您当前的身份 \"" + usergroupinfo.Grouptitle + "\" 没有浏览该商品分类的权限"); if (userid == -1) { needlogin = true; } return; } } else //当板块权限不为空,按照板块权限 { if (!Forums.AllowView(forum.Viewperm, usergroupid)) { AddErrLine("您没有浏览该商品分类的权限"); if (userid == -1) { needlogin = true; } return; } } } ////判断是否有发主题的权限 if (userid > -1 && Forums.AllowPostByUserID(forum.Permuserlist, userid)) { canposttopic = true; } if (forum.Postperm == null || forum.Postperm == string.Empty) //权限设置为空时,根据用户组权限判断 { // 验证用户是否有发表交易的权限 if (usergroupinfo.Allowtrade == 1) { canposttopic = true; } } else if (Forums.AllowPost(forum.Postperm, usergroupid)) { canposttopic = true; } // 如果当前用户非管理员并且论坛设定了禁止发帖时间段,当前时间如果在其中的一个时间段内,不允许用户发帖 if (useradminid != 1 && usergroupinfo.Disableperiodctrl != 1) { string visittime = ""; if (Scoresets.BetweenTime(config.Postbanperiods, out visittime)) { canposttopic = false; } } if (newpmcount > 0) { pmlist = PrivateMessages.GetPrivateMessageListForIndex(userid, 5, 1, 1); showpmhint = Convert.ToInt32(Users.GetShortUserInfo(userid).Newsletter) > 4; } //得到子分类JSON格式 subcategoriesjson = GoodsCategories.GetSubCategoriesJson(categoryid); //得到当前用户请求的页数 pageid = DNTRequest.GetInt("page", 1); //获取主题总数 goodscount = Goods.GetGoodsCount(categoryid, condition); // 得到gpp设置 if (gpp <= 0) { gpp = config.Gpp; } if (gpp <= 0) { gpp = 16; } //修正请求页数中可能的错误 if (pageid < 1) { pageid = 1; } if (forum.Layer > 0) { //获取总页数 pagecount = goodscount % gpp == 0 ? goodscount / gpp : goodscount / gpp + 1; if (pagecount == 0) { pagecount = 1; } if (pageid > pagecount) { pageid = pagecount; } goodslist = Goods.GetGoodsInfoList(categoryid, gpp, pageid, condition, orderStr, direct); ForumUtils.WriteCookie("referer", string.Format("showgoodslist.aspx?categoryid={0}&page={1}&order={2}&direct={3}&locus2={4}&search={5}", categoryid.ToString(), pageid.ToString(), orderStr, direct, cond, DNTRequest.GetString("search"))); //得到页码链接 if (DNTRequest.GetString("search") == "") { if (categoryid == 0) { if (config.Aspxrewrite == 1) { pagenumbers = Utils.GetStaticPageNumbers(pageid, pagecount, "showgoodslist-" + categoryid.ToString(), config.Extname, 8); } else { pagenumbers = Utils.GetPageNumbers(pageid, pagecount, "showgoodslist.aspx?categoryid=" + categoryid.ToString(), 8); } } else //当有类型条件时 { pagenumbers = Utils.GetPageNumbers(pageid, pagecount, "showgoodslist.aspx?categoryid=" + categoryid, 8); } } else { pagenumbers = Utils.GetPageNumbers(pageid, pagecount, "showgoodslist.aspx?search=" + DNTRequest.GetString("search") + "&order=" + 2 + "&direct=" + direct + "&categoryid=" + categoryid + "&locus_2=" + cond, 8); } } } forumlistboxoptions = Caches.GetForumListBoxOptionsCache(); OnlineUsers.UpdateAction(olid, UserAction.ShowForum.ActionID, forumid, forumname, -1, ""); showforumonline = false; onlineiconlist = Caches.GetOnlineGroupIconList(); if (forumtotalonline < config.Maxonlinelist || DNTRequest.GetString("showonline") == "yes") { showforumonline = true; onlineuserlist = OnlineUsers.GetForumOnlineUserCollection(forumid, out forumtotalonline, out forumtotalonlineguest, out forumtotalonlineuser, out forumtotalonlineinvisibleuser); } if (DNTRequest.GetString("showonline") == "no") { showforumonline = false; } ForumUtils.UpdateVisitedForumsOptions(forumid); visitedforumsoptions = ForumUtils.GetVisitedForumsOptions(config.Visitedforums); //因为目前还未提供RSS功能,所以下面两项为0 forumallowrss = 0; }