guide.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:18k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html; charset=utf-8"%>
  2. <%@ page import="org.jdom.*"%>
  3. <%@ page import="org.jdom.output.*"%>
  4. <%@ page import="org.jdom.input.*"%>
  5. <%@ page import="java.util.Iterator"%>
  6. <%@ page import="com.redmoon.forum.OnlineInfo"%>
  7. <%@ page import="cn.js.fan.db.*"%>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  9. <HTML><HEAD><TITLE>管理导读</TITLE>
  10. <META http-equiv=Content-Type content="text/html; charset=utf-8">
  11. <%@ include file="../inc/nocache.jsp"%>
  12. <LINK href="../../common.css" type=text/css rel=stylesheet>
  13. <STYLE>
  14. TABLE {
  15. BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 1px
  16. }
  17. TD {
  18. BORDER-RIGHT: 0px; BORDER-TOP: 0px
  19. }
  20. .style1 {color: #FFFFFF}
  21. .style2 {
  22. font-size: medium;
  23. font-weight: bold;
  24. }
  25. </STYLE>
  26. <SCRIPT>
  27. function loadonline(boardcode){
  28. var targetImg =eval("document.all.followImg000");
  29. var targetDiv =eval("document.all.followDIV000");
  30. if (targetImg.src.indexOf("nofollow")!=-1){return false;}
  31. if ("object"==typeof(targetImg)){
  32. if (targetDiv.style.display!='block')
  33. {
  34. targetDiv.style.display="block";
  35. targetImg.src="../images/minus.gif";
  36. advance.innerText="关闭在线列表";
  37. if (targetImg.loaded=="no")
  38. document.frames["hiddenframe"].location.replace("online.jsp?boardcode="+boardcode);
  39. }
  40. else
  41. {
  42. targetDiv.style.display="none";
  43. targetImg.src="../images/plus.gif";
  44. advance.innerText="查看在线列表"
  45. }
  46. }
  47. }
  48. ////////////////////展开帖子
  49. function loadThreadFollow(b_id,t_id,getstr){
  50. var targetImg2 =eval("document.all.followImg" + t_id);
  51. var targetTR2 =eval("document.all.follow" + t_id);
  52. if (targetImg2.src.indexOf("nofollow")!=-1){return false;}
  53. if ("object"==typeof(targetImg2)){
  54. if (targetTR2.style.display!="")
  55. {
  56. targetTR2.style.display="";
  57. targetImg2.src="../images/minus.gif";
  58. if (targetImg2.loaded=="no"){
  59. document.frames["hiddenframe"].location.replace("listtree.jsp?id="+b_id+getstr);
  60. }
  61. }else{
  62. targetTR2.style.display="none";
  63. targetImg2.src="../images/plus.gif";
  64. }
  65. }
  66. }
  67. </SCRIPT>
  68. <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
  69. <BODY topMargin=2>
  70. <%@ include file="../inc/inc.jsp"%>
  71. <p align=center class="style2"><br>
  72.   <br>
  73. 暂不提供本功能!</p>
  74. <%
  75. if (true)
  76. return;
  77. %>
  78. <jsp:useBean id="StrUtil" scope="page" class="cn.js.fan.util.StrUtil"/>
  79. <jsp:useBean id="privilege" scope="page" class="com.redmoon.forum.Privilege"/>
  80. <jsp:useBean id="Topic" scope="page" class="com.redmoon.forum.MsgMgr" />
  81. <jsp:useBean id="guide" scope="page" class="com.redmoon.forum.Guide" />
  82. <%
  83. String querystring = StrUtil.getNullString(request.getQueryString());
  84. String privurl=request.getRequestURL()+"?"+StrUtil.UrlEncode(querystring,"utf-8");
  85. String what = StrUtil.UnicodeToGB(StrUtil.getNullString(request.getParameter("what")));
  86. String op = StrUtil.getNullString(request.getParameter("op"));
  87. String boardcode = StrUtil.getNullString(request.getParameter("boardcode"));
  88. String boardname = StrUtil.UnicodeToGB(StrUtil.getNullString(request.getParameter("boardname")));
  89. String id = StrUtil.getNullString(request.getParameter("id"));
  90. String strhit = StrUtil.getNullString(request.getParameter("hit"));
  91. String title = StrUtil.UnicodeToGB(StrUtil.getNullString(request.getParameter("title")));
  92. String color = StrUtil.getNullString(request.getParameter("color"));
  93. String sort = StrUtil.getNullString(request.getParameter("sort"));
  94. String guideboardcode = boardcode;
  95. if (op.equals("add")) {
  96. if (boardcode.equals("") || boardname.equals(""))
  97. {
  98. out.println(StrUtil.Alert("参数不全,请检查!"));
  99. }
  100. else {
  101. boolean re = false;
  102. try {
  103. re = guide.AddGuideOfBoard(guideboardcode,title,id,boardcode,boardname,strhit,"");
  104. }
  105. catch (cn.js.fan.util.ErrMsgException e) {
  106. out.println(StrUtil.Alert(e.getMessage()));
  107. }
  108. if (re)
  109. out.println(StrUtil.Alert("置为导读成功!"));
  110. }
  111. }
  112. if (op.equals("del"))
  113. {
  114. guide.del(guideboardcode,id);
  115. out.println(StrUtil.Alert("导读删除成功!"));
  116. }
  117. if (op.equals("sort")) {
  118. guide.Sort(guideboardcode);
  119. out.println(StrUtil.Alert("重新排序成功!"));
  120. }
  121. if (op.equals("modify"))
  122. {
  123. if (!StrUtil.isNumeric(sort))
  124. out.print(StrUtil.Alert("序号必须为数字!"));
  125. else {
  126. int intsort = Integer.parseInt(sort);
  127. guide.modifyGuideOfBoard(guideboardcode,id,boardcode,boardname,strhit,color,title,intsort);
  128. out.println(StrUtil.Alert("导读修改成功!"));
  129. }
  130. }
  131. if (op.equals("generateguide"))
  132. {
  133. guide.generateGuideXMLFileOfBoard(boardcode, boardname);
  134. out.println(StrUtil.Alert("生成论坛导读成功!"));
  135. }
  136. %>   
  137. <table width="100%" border="1" align="center" cellpadding="1" cellspacing="0" bordercolor="#edeced" class="p9">
  138.   <tr align="center" bgcolor="#0078bf"> 
  139.     <td height="21" colspan="8"><span class="style1"><%=boardname%>-导读管理</span></td>
  140.   </tr>
  141.   <tr align="center"> 
  142.     <td width="5%" height="23">编号</td>
  143.     <td width="32%" height="23">标题</td>
  144.     <td width="9%" height="23">论坛编码</td>
  145.     <td width="18%">论坛名称</td>
  146.     <td width="9%">点击数</td>
  147.     <td width="11%" height="23">颜色</td>
  148.     <td width="5%">序号</td>
  149.     <td width="11%">操作</td>
  150.   </tr>
  151. <%
  152. java.util.List list = guide.getGuide(guideboardcode);
  153. Iterator ir = null;
  154. if (list!=null)
  155. ir = list.iterator();
  156. int n = 0;
  157. while (ir!=null && ir.hasNext())
  158. {
  159. n++;
  160. Element a = (Element)ir.next(); //得到第i个元素
  161. boardcode = a.getAttribute("boardcode").getValue();
  162. boardname = a.getAttribute("boardname").getValue();
  163. id = a.getAttribute("id").getValue();
  164. title = a.getChild("title").getText();
  165. strhit = a.getAttribute("hit").getValue();
  166. color = a.getAttribute("color").getValue();
  167. Attribute st = a.getAttribute("sort");
  168. if (st==null)
  169. sort = "0";
  170. else
  171. sort = st.getValue();
  172. %>
  173.   <tr align="center"> 
  174.     <form name="form<%=n%>" action="../manager/?op=modify" method=post>
  175.       <td width="5%" height="39"> <%=id%></td>
  176.       <td width="32%" height="39" align="left"> 
  177.         <input type="text" name="title" value="<%=title%>" size="30">
  178.          <input type=hidden name="id" value="<%=id%>"> 
  179.       </td>
  180.       <td width="9%" height="39"><%=boardcode%> <input type=hidden name="boardcode" value="<%=boardcode%>"> 
  181.       </td>
  182.       <td width="18%" height="39"><%=boardname%> <input type=hidden name="boardname" value="<%=boardname%>"></td>
  183.       <td width="9%" height="39"><%=strhit%> <input type=hidden name="hit" value="<%=strhit%>"></td>
  184.       <td width="11%" height="39"><SELECT name="color" onchange="if(this.value!='0')msg.style.color=colortable[this.value-1];else msg.style.color='';msg.focus();">
  185.           <option value="" STYLE="COLOR: black" selected>颜色</option>
  186.           <option style="BACKGROUND: #000088" value="#000088"></option>
  187.           <option style="BACKGROUND: #0000ff" value="#0000ff"></option>
  188.           <option style="BACKGROUND: #008800" value="#008800"></option>
  189.           <option style="BACKGROUND: #008888" value="#008888"></option>
  190.           <option style="BACKGROUND: #0088ff" value="#0088ff"></option>
  191.           <option style="BACKGROUND: #00a010" value="#00a010"></option>
  192.           <option style="BACKGROUND: #1100ff" value="#1100ff"></option>
  193.           <option style="BACKGROUND: #111111" value="#111111"></option>
  194.           <option style="BACKGROUND: #333333" value="#333333"></option>
  195.           <option style="BACKGROUND: #50b000" value="#50b000"></option>
  196.           <option style="BACKGROUND: #880000" value="#880000"></option>
  197.           <option style="BACKGROUND: #8800ff" value="#8800ff"></option>
  198.           <option style="BACKGROUND: #888800" value="#888800"></option>
  199.           <option style="BACKGROUND: #888888" value="#888888"></option>
  200.           <option style="BACKGROUND: #8888ff" value="#8888ff"></option>
  201.           <option style="BACKGROUND: #aa00cc" value="#aa00cc"></option>
  202.           <option style="BACKGROUND: #aaaa00" value="#aaaa00"></option>
  203.           <option style="BACKGROUND: #ccaa00" value="#ccaa00"></option>
  204.           <option style="BACKGROUND: #ff0000" value="#ff0000"></option>
  205.           <option style="BACKGROUND: #ff0088" value="#ff0088"></option>
  206.           <option style="BACKGROUND: #ff00ff" value="#ff00ff"></option>
  207.           <option style="BACKGROUND: #ff8800" value="#ff8800"></option>
  208.           <option style="BACKGROUND: #ff0005" value="#ff0005"></option>
  209.           <option style="BACKGROUND: #ff88ff" value="#ff88ff"></option>
  210.           <option style="BACKGROUND: #ee0005" value="#ee0005"></option>
  211.           <option style="BACKGROUND: #ee01ff" value="#ee01ff"></option>
  212.           <option style="BACKGROUND: #3388aa" value="#3388aa"></option>
  213.           <option style="BACKGROUND: #000000" value="#000000"></option>
  214.         </SELECT> <script language="JavaScript">
  215. form<%=n%>.color.value="<%=color%>"
  216. </script> </td>
  217.       <td width="5%" height="39"><input type="text" name="sort" size=3 value="<%=sort%>"> </td>
  218.       <td width="11%" height="39"><input name="Submit3" type="submit" class="singleboarder" value="修改"> 
  219.         <a href="guide.jsp?op=del&id=<%=id%>&boardcode=<%=boardcode%>&boardname=<%=StrUtil.UrlEncode(boardname,"utf-8")%>" class=mainA> 删除</a></td>
  220.     </form>
  221.   </tr>
  222.   <%
  223. }%>
  224. </table>
  225. <table width="100%" border="0" align="center" bgcolor="#0078bf" class="p9">
  226.   <form name="form_search" method="post" action="../manager/?">
  227.     <tr> 
  228.       <td width="9%" align="center"><span class="style1">贴子标题 </span></td>
  229.       <td width="21%" align="left"> <input name="what" type="text" class="singleboarder" > 
  230.       </td>
  231.       <td width="70%" align="left"><input name="Submit" type="submit" class="singleboarder" value="搜索贴子">
  232.         &nbsp;<a href="guide.jsp?op=sort&boardcode=<%=boardcode%>&boardname=<%=StrUtil.UrlEncode(boardname,"utf-8")%>"><font color=white>重新排序</font></a> <input type=hidden name="boardcode" value="<%=boardcode%>">
  233.         <input type=hidden name="boardname" value="<%=boardname%>">
  234.         <a href="guide.jsp?op=generateguide&boardcode=<%=boardcode%>&boardname=<%=StrUtil.UrlEncode(boardname,"utf-8")%>"><font color=white>重新生成<%=boardname%>导读</font></a></td>
  235.     </tr>
  236.   </form>
  237. </table>
  238. <%
  239. if (boardcode==null)
  240. {
  241. out.println(StrUtil.makeErrMsg("请选择版面!"));
  242. return;
  243. }
  244. String sql;
  245. if (what.equals(""))
  246. sql = "select f.id,topic,f.name,lydate,recount,hit,expression,f.type,iselite,islocked,level,boardcode,b.name as boardname,f.isguide from sq_message as f,sq_forumboard as b where f.boardcode="+StrUtil.sqlstr(boardcode)+" and f.boardcode=b.code and f.rootid=-1 ORDER BY f.isguide desc,f.hit desc,f.level desc,f.lydate desc";
  247. else
  248. sql = "select f.id,topic,f.name,lydate,recount,hit,expression,f.type,iselite,islocked,level,boardcode,b.name as boardname,f.isguide from sq_message as f,sq_forumboard as b where f.boardcode="+StrUtil.sqlstr(boardcode)+" and f.topic like "+StrUtil.sqlstr("%"+what+"%")+" and f.boardcode=b.code and f.rootid=-1 ORDER BY f.isguide desc,f.hit desc,f.level desc,f.lydate desc";
  249. int pagesize = 10;
  250. ResultRecord rr = null;
  251. Paginator paginator = new Paginator(request);
  252. int curpage = paginator.getCurPage();
  253. PageConn pageconn = new PageConn("forum", curpage, pagesize);
  254. ResultIterator ri = pageconn.getResultIterator(sql);
  255. paginator.init(pageconn.getTotal(), pagesize);
  256. //设置当前页数和总页数
  257. int totalpages = paginator.getTotalPages();
  258. if (totalpages==0)
  259. {
  260. curpage = 1;
  261. totalpages = 1;
  262. }
  263. %>
  264.   <table width="100%" border="0" class="p9">
  265.     <tr>
  266.     <td align="right">找到符合条件的记录 <b><%=paginator.getTotal() %></b> 条 每页显示 <b><%=paginator.getPageSize() %></b> 
  267.       条 页次 <b><%=curpage %>/<%=totalpages %></b></td>
  268.     </tr>
  269.   </table>
  270.   <TABLE borderColor=#edeced cellSpacing=0 cellPadding=1 width="100%" align=center 
  271. border=1>
  272.     <TBODY>
  273.       <TR bgColor=#0078bf height=25> 
  274.         <TD colSpan=3 align=middle noWrap bgcolor="#0078bf"><FONT color=#ffffff>主题列表 <B>(点 <IMG 
  275.       src="../images/plus.gif"> 即可展开贴子列表)</B></FONT></TD>
  276.         <TD noWrap align=middle width=91><FONT color=#ffffff>作者</FONT></TD>
  277.         <TD noWrap align=middle width=55><FONT color=#ffffff>字[回]</FONT></TD>
  278.         <TD noWrap align=middle width=55><FONT color=#ffffff>操作/点击</FONT></TD>
  279.         <TD noWrap align=middle width=80><FONT color=#ffffff>日期</FONT></TD>
  280.       </TR>
  281.     </TBODY>
  282.   </TABLE>
  283.   <%
  284. String topic = "",name="",lydate="",expression="";
  285. int level=0,iselite=0,islocked=0;
  286. int i = 0,recount=0,hit=0,type=0,isguide=0;
  287. while (ri.hasNext()) {
  288.         rr = (ResultRecord)ri.next(); 
  289.   i++;
  290.   id = rr.getString("id");
  291.   topic = rr.getString("topic");
  292.   name = rr.getString("name");
  293.   lydate = rr.getString("lydate");
  294.   recount = rr.getInt("recount");
  295.   hit = rr.getInt("hit");
  296.   expression = rr.getString("expression");
  297.   type = rr.getInt("type");
  298.   iselite = rr.getInt("iselite");
  299.   islocked = rr.getInt("islocked");
  300.   level = rr.getInt("level");
  301.   boardcode = rr.getString("boardcode");
  302.   boardname = rr.getString("boardname");
  303.   isguide = rr.getInt("isguide");
  304.   %>
  305.   <table bordercolor=#edeced cellspacing=0 cellpadding=1 width="100%" align=center border=1>
  306.     <tbody>
  307.       <tr> 
  308.         <td noWrap align=middle width=30 bgcolor=#f8f8f8> <% if (level==100) { %> <IMG height=15 alt="" src="../images/f_top.gif" width=15 border=0> 
  309.           <% } 
  310. else {
  311. if (iselite==1) { %> <IMG src="../images/topicgood.gif"> <% }
  312. else {
  313. %> <%if (recount>20){ %> <img alt="打开主题 (热门主题)" src="../images/f_hot.gif"> <%}
  314.   else if (recount>0) {%> <img alt="打开主题 (有回复的主题)" src="../images/f_new.gif"> <%}
  315.   else {%> <img alt="打开主题 (没有回复的主题)" src="../images/f_norm.gif"> <%}
  316.   }
  317.  }%> </td>
  318.         <td align=middle width=17 bgcolor=#ffffff> <% String urlboardname = StrUtil.UrlEncode(boardname,"utf-8"); %> <a href="../manager/showtopictree.jsp?boardcode=<%=boardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>" target=_blank> 
  319.           <% 
  320.   if (islocked==1) { %>
  321.           <IMG height=15 alt="" src="../images/f_locked.gif" width=17 border=0> 
  322.           <% }
  323.   else {
  324.   if (type==1) { %>
  325.           <IMG height=15 alt="" src="../images/f_poll.gif" width=17 border=0> 
  326.           <%}else { %>
  327.           <img src="../images/brow/<%=expression%>.gif" border=0> 
  328.           <%}
  329.   } %>
  330.           </a></td>
  331.         <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  332.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8> <%
  333. if (recount==0) {
  334. %> <img id=followImg<%=id%> title=展开回复" src="../images/minus.gif" loaded="no"> 
  335.           <% }else { %> <img id=followImg<%=id%> title=展开回复 style="CURSOR: hand" 
  336.       onClick=loadThreadFollow(<%=id%>,<%=id%>,"&boardcode=<%=boardcode%>&hit=<%=hit+1%>&boardname=<%=urlboardname%>") src="../images/plus.gif" loaded="no"> 
  337.           <% } %> <!--<a href="showtopictree.jsp?boardcode=<%=boardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>">(树形)<%=topic%></a>--> 
  338.   <a href="../showtopic.jsp?boardcode=<%=boardcode%>&hit=<%=hit%>&boardname=<%=urlboardname%>&rootid=<%=id%>"><%=topic%></a> 
  339.   <%
  340. //计算共有多少页回贴
  341. int allpages = (int)Math.ceil((double)recount/pagesize);
  342. if (allpages>1)
  343. {
  344.   out.print("[");
  345. for (int m=1; m<=allpages; m++)
  346. { %> <a href="../showtopic.jsp?boardcode=<%=boardcode%>&hit=<%=(hit+1)%>&boardname=<%=urlboardname%>&rootid=<%=id%>&CPages=<%=m%>"><%=m%></a> <% }
  347.    out.print("]");
  348.  }%> </td>
  349.         <td align=middle width=91 bgcolor=#ffffff> <% if (privilege.getUser(request).equals(name)) { %> <IMG height=14 src="../images/my.gif" 
  350.             width=14> <% } %> <a href="../userinfo.jsp?username=<%=name%>"><%=name%></a> </td>
  351.         <td align=middle width=55 bgcolor=#f8f8f8><font color=red>[<%=recount%>]</font></td>
  352.         <td align=middle width=55 bgcolor=#ffffff>
  353. <%if (isguide==0) {%>
  354. <a href="guide.jsp?op=add&title=<%=StrUtil.UrlEncode(topic,"utf-8")%>&id=<%=id%>&boardcode=<%=boardcode%>&boardname=<%=StrUtil.UrlEncode(boardname,"utf-8")%>&hit=<%=hit%>">置为导读[<%=hit%>]</a>
  355. <%}else if (isguide==2){%>
  356. 社区导读
  357. <%}else{%>
  358. <a href="guide.jsp?op=del&id=<%=id%>&boardcode=<%=boardcode%>&boardname=<%=StrUtil.UrlEncode(boardname,"utf-8")%>" class=mainA>删除导读</a>[<%=hit%>]
  359. <%}%>
  360. </td>
  361.         <td align=left width=80 bgcolor=#f8f8f8> <table cellspacing=0 cellpadding=2 width="100%" align=center border=0>
  362.             <tbody>
  363.               <tr> 
  364.                 <td width="10%">&nbsp;</td>
  365.                 <td><%=lydate.substring(0,19)%></td>
  366.               </tr>
  367.             </tbody>
  368.           </table></td>
  369.       </tr>
  370.       <tr id=follow<%=id%> style="DISPLAY: none"> 
  371.         <td noWrap align=middle width=30 bgcolor=#f8f8f8>&nbsp;</td>
  372.         <td align=middle width=17 bgcolor=#ffffff>&nbsp;</td>
  373.         <td onMouseOver="this.style.backgroundColor='#ffffff'" 
  374.     onMouseOut="this.style.backgroundColor=''" align=left bgcolor=#f8f8f8 colspan="5"> 
  375.           <div id=followDIV<%=id%> 
  376.       style="WIDTH: 100%;BACKGROUND-COLOR: lightyellow" 
  377.       onClick=loadThreadFollow(<%=id%>,<%=id%>,"&hit=<%=hit+1%>&boardname=<%=urlboardname%>")>正在读取关于本主题的跟贴,请稍侯……</div></td>
  378.       </tr>
  379.       <tr> 
  380.         <td 
  381.     style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" 
  382.     colspan=5> </td>
  383.       </tr>
  384.     </tbody>
  385.   </table>
  386. <%}%>
  387.   <table width="100%" border="0" cellspacing="1" cellpadding="3" align="center" class="9black">
  388.     <tr> 
  389.       <td width="2%" height="23">&nbsp;</td>
  390.       <td width="76%" valign="baseline" height="23"> 
  391.         <div align="right"> 
  392.           <%
  393. String querystr = "what="+StrUtil.UrlEncode(what,"utf-8");
  394. out.print(paginator.getCurPageBlock("guide.jsp?"+querystr));
  395. %>
  396.           &nbsp;</div>
  397.     </td>
  398.       
  399.     <td width="22%" height="23">&nbsp; </td>
  400.   </tr>
  401. </table>            
  402. </BODY></HTML>