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

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8" language="java" errorPage="" %>
  2. <%@ page import="cn.js.fan.util.*"%>
  3. <%@ page import="cn.js.fan.db.*"%>
  4. <%@ page import="cn.js.fan.module.cms.*"%>
  5. <%@ page import="cn.js.fan.module.cms.plugin.teach.*"%>
  6. <%@ page import="com.redmoon.oa.pvg.*"%>
  7. <%@ page import="cn.js.fan.security.*"%>
  8. <%
  9. int id = 0;
  10. String dirCode = ParamUtil.get(request, "dir_code");
  11. boolean isDirArticle = false;
  12. Leaf lf = new Leaf();
  13. if (!dirCode.equals("")) {
  14. lf = lf.getLeaf(dirCode);
  15. if (lf!=null) {
  16. if (lf.getType()==1) {
  17. id = lf.getDocID();
  18. isDirArticle = true;
  19. }
  20. }
  21. }
  22. if (id==0) {
  23. try {
  24. id = ParamUtil.getInt(request, "id");
  25. }
  26. catch (ErrMsgException e) {
  27. out.print(StrUtil.makeErrMsg(e.getMessage()));
  28. return;
  29. }
  30. }
  31. Document doc = null;
  32. DocumentMgr docmgr = new DocumentMgr();
  33. doc = docmgr.getDocument(id);
  34. if (!doc.isLoaded()) {
  35. out.print(StrUtil.makeErrMsg("该文章不存在!"));
  36. return;
  37. }
  38. TeachDocumentDb tdd = new TeachDocumentDb();
  39. tdd = tdd.getTeachDocumentDb(doc.getID());
  40. if (!isDirArticle)
  41. lf = lf.getLeaf(doc.getDirCode());
  42. String CPages = ParamUtil.get(request, "CPages");
  43. int pageNum = 1;
  44. if (StrUtil.isNumeric(CPages))
  45. pageNum = Integer.parseInt(CPages);
  46. String op = ParamUtil.get(request, "op");
  47. String view = ParamUtil.get(request, "view");
  48. String sCurSpeed = ParamUtil.get(request, "curSpeed");
  49. if (sCurSpeed.equals(""))
  50. sCurSpeed = "1"; // 普通速度
  51. int curSpeed = 1;
  52. if (StrUtil.isNumeric(sCurSpeed))
  53. curSpeed = Integer.parseInt(sCurSpeed);
  54. CommentMgr cm = new CommentMgr();
  55. if (op.equals("addcomment")) {
  56. try {
  57. cm.insert(request);
  58. }
  59. catch (ErrMsgException e) {
  60. out.print(StrUtil.Alert(e.getMessage()));
  61. }
  62. }
  63. if (op.equals("vote")) {
  64. try {
  65. docmgr.vote(request,id);
  66. }
  67. catch (ErrMsgException e) {
  68. out.print(StrUtil.Alert(e.getMessage()));
  69. }
  70. }
  71. %>
  72. <html>
  73. <head>
  74. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  75. <title>
  76. <jsp:useBean id="cfg" scope="page" class="cn.js.fan.web.Config"/>
  77. <%=cfg.getProperty("Application.name")%>
  78.  - <%=doc.getTitle()%></title>
  79. <style type="text/css">
  80. #floater {
  81. position: absolute;
  82. left: 0;
  83. top: 0;
  84. visibility: visible;
  85. z-index: 10;
  86. cursor:hand;
  87. width: 100%;
  88. }
  89. </style>
  90. <link href="common.css" rel="stylesheet" type="text/css">
  91. <script src="doc_show.js">
  92. </script>
  93. <script src="floater.js" LANGUAGE="javascript">
  94. </script>
  95. <script>
  96. function findObj(theObj, theDoc)
  97. {
  98.   var p, i, foundObj;
  99.   
  100.   if(!theDoc) theDoc = document;
  101.   if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  102.   {
  103.     theDoc = parent.frames[theObj.substring(p+1)].document;
  104.     theObj = theObj.substring(0,p);
  105.   }
  106.   if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  107.   for (i=0; !foundObj && i < theDoc.forms.length; i++) 
  108.     foundObj = theDoc.forms[i][theObj];
  109.   for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
  110.     foundObj = findObj(theObj,theDoc.layers[i].document);
  111.   if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  112.   
  113.   return foundObj;
  114. }
  115. function window_onload() {
  116. eSentenceAry = parseContent(content, true);
  117. cSentenceAry = parseContent(content, false);
  118. show("yw");
  119. // 建立播放列表
  120.     <%
  121.    if (doc!=null) {
  122.   java.util.Vector attachments = doc.getAttachments(pageNum);
  123.   int size = attachments.size();
  124.   int speedCount = tdd.getSpeedCount();
  125.   if (curSpeed>speedCount)
  126.    curSpeed = 1;
  127.   // 根据当前速度,判断列表应取哪些文件
  128.   int begin=0,end=size-1;
  129.   int fileCount = size/speedCount; // 一种语速所包含的语音文件数
  130.   begin = (curSpeed-1)*(fileCount);
  131.   end = curSpeed*fileCount-1;
  132.           for (int i=begin; i<=end; i++) {
  133.               Attachment am = (Attachment)attachments.get(i); %>
  134.               mkList("../../../<%=am.getVisualPath() + "/" + am.getDiskName()%>", "<%=am.getName()%>");
  135.   <%}
  136.     }%>
  137. // 示例
  138. // mkList("http://localhost:8080/zjrj/exobud/sample/dxh.wma","丁香花");
  139. // 初始化播放器
  140. initExobud();
  141. // 检测播放索引值
  142. setTimeout("updateTextColor()",1000);
  143. }
  144. function updateTextColor()
  145. {
  146. var spanEN = findObj("en_" + cActIdx);
  147. var spanCN = findObj("cn_" + cActIdx);
  148. try {
  149. if (typeof(spanEN)=="object") {
  150. if (spanEN.innerHTML!=null)
  151. spanEN.innerHTML = "<font color=red>" + spanEN.innerHTML + "</font>";
  152. }
  153. }
  154. catch (e) {}
  155. try {
  156. if (typeof(spanCN)=="object") {
  157. spanCN.innerHTML = "<font color=blue>" + spanCN.innerHTML + "</font>";
  158. }
  159. }
  160. catch (e) {}
  161. setTimeout("updateTextColor()",1000);
  162. }
  163. </script>
  164. <style type="text/css">
  165. <!--
  166. .STYLE1 {color: #FFFFFF}
  167. -->
  168. </style></head>
  169. <body onLoad="window_onload()"><table ID="floater" name="floater" cellpadding="0" cellspacing="0">
  170.       <tr>
  171.         <td><table width="100%" border="0" align="center" cellspacing="0" class=p9>
  172.           <tr>
  173.             <td width="100%" height="26" background="images/bg.gif">&nbsp;<span >版式
  174.               <select id="mode" name="mode" onChange="show(this.options[this.selectedIndex].value)" style="height:18">
  175.                         <option value="yw">原文</option>
  176.                         <option value="yiw">译文</option>
  177.                         <option value="zydb">左右对比</option>
  178.                         <option value="dldb">段落对比</option>
  179.                         <option value="jzdb">句子对比</option>
  180.             </select>
  181.               语速:
  182.               <select name=speedCount onChange="window.location.href='doc_show.jsp?id=<%=doc.getID()%>&curSpeed='+this.options[this.selectedIndex].value+''" style="height:18">
  183.                 <option value=1>普通</option>
  184.                 <option value=2>慢速</option>
  185.                 <option value=3>快速</option>
  186.               </select>
  187.               <script>
  188. speedCount.value = "<%=curSpeed%>";
  189.         </script></span>
  190.   </td>
  191.           </tr><tr><td bgcolor="#FFFFFF">
  192.                 <%@ include file="../../../exobud/exobud.jsp"%>
  193.               </td>
  194.           </tr>
  195.         </table></td>
  196.       </tr>
  197.     </table>
  198. <table width="100%" height="623"  border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF">
  199.   <tr>
  200.     <td width=""></td>
  201.   </tr>
  202.   <tr>
  203.     <td height="86" align="center">
  204.         <br>
  205.         <br>
  206.         <br>
  207.         <br>
  208.         <%if (doc.isLoaded()) {%>
  209.         <b><font size="3"> <%=doc.getTitle()%></font></b>&nbsp;[<%=doc.getModifiedDate()%> 访问次数:<%=doc.getHit()%>]
  210.       <%}else{%>
  211.       未找到该文章!
  212.       <%}%>
  213.       <br>
  214.       <br></td>
  215.   </tr>
  216.   <tr>
  217.     <td valign="top"><%
  218. com.redmoon.oa.pvg.Privilege privilege = new com.redmoon.oa.pvg.Privilege();
  219.     LeafPriv lp = new LeafPriv();
  220. lp.setDirCode(doc.getDirCode());
  221.     if (!lp.canUserSee(privilege.getUser(request))) {
  222. out.print(StrUtil.makeErrMsg(privilege.MSG_INVALID) + "<BR><BR>");
  223. }
  224. else {
  225. if (doc!=null && pageNum==1) {
  226. // 使点击量增1
  227. doc.increaseHit();
  228. }
  229. %>
  230.         <textarea name="textarea" cols="60" rows="10" id="content" style="display:none"><%if (doc.isLoaded()) {%><%=doc.RenderContent(request, pageNum)%><%}%>
  231.                 </textarea>
  232.         <div id="contentView" style="width:100%"></div>
  233.       <br>
  234.         <br>
  235.         <%
  236. if (doc!=null) {
  237.   java.util.Vector attachments = doc.getAttachments(pageNum);
  238.   java.util.Iterator ir = attachments.iterator();
  239.   while (ir.hasNext()) {
  240. Attachment am = (Attachment) ir.next(); %>
  241.         <table width="569"  border="0" cellspacing="0" cellpadding="0">
  242.           <tr>
  243.             <td width="91" align="right"><img src="../../../images/attach.gif"></td>
  244.             <td width="478">&nbsp; <a target=_blank href="<%=am.getVisualPath() + "/" + am.getDiskName()%>"><%=am.getName()%></a> </td>
  245.           </tr>
  246.         </table>
  247.       <%}
  248. }%>
  249.         <%if (doc.getType()==1 && (op.equals("") || !op.equals("vote"))) {
  250. String[] voptions = doc.getVoteOption().split("\|");
  251. int len = voptions.length; %>
  252.         <table width="100%" >
  253.           <form action="?op=vote" name=formvote method="post">
  254.             <input type=hidden name=op value="vote">
  255.             <input type=hidden name=id value="<%=doc.getID()%>">
  256.             <%for (int k=0; k<len; k++) { %>
  257.             <tr>
  258.               <td width="5%"><%=k+1%>、 </td>
  259.               <td width="73%"><input class="n" type=radio name=votesel value="<%=k%>">
  260.                   <%=voptions[k]%> </td>
  261.               <td>&nbsp;</td>
  262.             </tr>
  263.             <% } %>
  264.             <tr>
  265.               <td colspan="2" align="center"><input name="Submit" type="submit" class="singleboarder" value=" 投  票 ">
  266.                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  267.                 <input name="btn" type="button" class="singleboarder" value="查看结果" onClick="window.location.href='doc_show.jsp?id=<%=id%>?view=result'"></td>
  268.               <td width="22%">&nbsp;</td>
  269.             </tr>
  270.           </form>
  271.         </table>
  272.       <%}%>
  273.         <br>
  274.         <%if (view.equals("result") || op.equals("vote")) {
  275. String[] result = doc.getVoteResult().split("\|");
  276. int len = result.length;
  277. int[] re = new int[len];
  278. int[] bfb = new int[len];
  279. int total = 0;
  280. for (int k=0; k<len; k++) {
  281. re[k] = Integer.parseInt(result[k]);
  282. total += re[k];
  283. }
  284. if (total!=0) {
  285. for (int k=0; k<len; k++) {
  286. bfb[k] = (int)Math.round((double)re[k]/total*100);
  287. }
  288. }
  289. %>
  290.         <table class=p9 width="98%" border="0" cellpadding="0" cellspacing="1" height="100">
  291.           <% for (int k=0; k<len; k++) { %>
  292.           <tr bgcolor="#FEF2E9">
  293.             <td width="5%"><%=k+1%>、</td>
  294.             <td width="59%"><img src=images/bar.gif width=<%=bfb[k]*2%> height=10></td>
  295.             <td width="17%" align="right"><%=re[k]%>人</td>
  296.             <td width="19%" align="right"><%=bfb[k]%>%</td>
  297.           </tr>
  298.           <%}%>
  299.           <tr bgcolor="#FEF2E9">
  300.             <td colspan="4" align="center">共有<%=total%>人参加调查</td>
  301.           </tr>
  302.         </table>
  303.       <%}%>
  304.         <table width="100%"  border="0" cellspacing="0" cellpadding="0">
  305.           <tr>
  306.             <td height="24" align="center">文章共<%=doc.getPageCount()%>页&nbsp;&nbsp;页码
  307.               <%
  308. int pagesize = 1;
  309. int total = DocContent.getContentCount(doc.getID());
  310. int curpage,totalpages;
  311. Paginator paginator = new Paginator(request, total, pagesize);
  312. // 设置当前页数和总页数
  313. totalpages = paginator.getTotalPages();
  314. curpage = paginator.getCurrentPage();
  315. if (totalpages==0)
  316. {
  317. curpage = 1;
  318. totalpages = 1;
  319. }
  320. String querystr = "op=edit&id=" + id;
  321. out.print(paginator.getCurPageBlock("?"+querystr));
  322. %></td>
  323.           </tr>
  324.         </table>
  325.       <%}%>
  326.         <br>
  327.     </td>
  328.   </tr>
  329. </table>
  330. </body>
  331. </html>