📄 www2-addons.js
字号:
/** * Part of the KBS BBS Code * Copyright (c) 2005-2008 KBS Development Team. (http://dev.kcn.cn/) * Source file is subject to the pending KBS License. * * You may use and/or modify the source code only for pure personal study * purpose (e.g. using it in a public website is not acceptable), unless * you get explicit permission by the KBS Development Team. */function annWriter(path, perm_bm, text, title) { this.path = path; this.perm_bm = perm_bm; this.num = 1; this.title = title; var str; str = '<form id="frmAnnounce" action="bbs0anbm.php?path=' + path + '" method="post">'; str += '<input type="hidden" id="annAction" name="annAction" value="">'; str += '<div class="smaller" style="text-align:right">'; if(text == '') { str += '精华区管理模式:您在当前目录<span style="color:#FF0000">'; str += perm_bm ? '有' : '没有'; str += '</span>管理权限。'; } else str += '<span style="color:#FF0000">' + text + '</span>'; str += '</div>'; str += '<table class="main wide"><col width="5%" /><col width="8%" /><col width="4%" /><col width="38%" />'; str += '<col width="10%" /><col width="10%" /><col width="10%" /><tr><th>#</th><th>类型</th><th></th>'; str += '<th>标题</th><th>版主</th><th>' + (perm_bm?'文件名':'日期') + '</th><th>操作</th></tr><tbody>'; w(str);}annWriter.prototype.i = function(type, title, title_enc, bm, filename, date) { var str, itempath; str = '<tr><td class="center">' + this.num + '</td><td class="center">'; switch(type) { case 0: str += '错误'; break; case 1: str += '目录'; break; case 2: case 3: default: str += '文件'; break; } str += '</td><td class="center"><input type="checkbox" name="ann' + this.num + '" value="' + filename + '"></td><td>'; itempath = this.path + '%2F' + filename; if (type == 1) str += '<a href="bbs0anbm.php?path=' + itempath + '">'; else if (type >= 2) str += '<a href="bbsanc.php?annbm=1&path=' + itempath + '">'; str += title + '</a></td><td>' + bm + '</td><td>'; str += this.perm_bm ? (filename + ((type == 1) ? '/' : '')) : date; str += '</td><td>'; if (type == 1) str += '<a href="bbs0anbm_editdir.php?path=' + itempath + '&title=' + title_enc + '&bm=' + bm + '">修改</a>'; else if (type >= 2) str += '<a href="bbs0anbm_editfile.php?path=' + itempath + '&title=' + title_enc + '">编辑</a>'; str += ' <a href="javascript:ann_move(' + this.num + ');">调序</a>'; str += '<span id="divam' + this.num + '"></span>'; str += '</td></tr>'; w(str); this.num++;};annWriter.prototype.f = function() { var str; str = '</tbody></table>'; if (this.perm_bm) { str += '<br><div class="center smaller">'; str += '[<a href="bbs0anbm_mkdir.php?path=' + this.path + '">创建目录</a>] '; str += '[<a href="bbs0anbm_mkfile.php?path=' + this.path + '">创建文件</a>] '; str += '[<a href="javascript:ann_clip(\'cut\');">剪切</a>] '; str += '[<a href="javascript:ann_clip(\'copy\');">复制</a>] '; str += '[<a href="javascript:ann_clip(\'paste\');">粘贴</a>] '; str += '[<a href="javascript:ann_delete();">删除</a>] '; str += '[<a href="bbsipath.php?inann=1&annpath=' + this.path + '&title=' + this.title + '">丝路</a>]'; str += '</div>'; } str += '<input type="hidden" id="annCount" name="annCount" value="' + (this.num-1) + '">'; str += '</form>'; w(str);};function ann_delete(){ if(confirm('确定要删除这些文件或目录吗?')) { frmAnnounce.annAction.value = 'delete'; frmAnnounce.submit(); }}function ann_clip(action){ frmAnnounce.annAction.value = action; frmAnnounce.submit();}function ann_move(num){ var str = ''; str += '<br>新序<input type="text" size="3" name="newnum">'; str += '<input type="hidden" name="oldnum" value="' + num + '">'; str += '<br><input type="button" value="移动" onclick="ann_move_do();">'; str += '<input type="button" value="取消" onclick="ann_move_cancel(' + num + ');">'; document.getElementById('divam' + num).innerHTML = str;}function ann_move_do(){ frmAnnounce.annAction.value = 'move'; frmAnnounce.submit();}function ann_move_cancel(num){ var thediv = document.getElementById('divam' + num); thediv.innerHTML = '';}function ipathMakeItem(title, path){ return(title + '<br>' + path);}function ipathWriter(inAnn) { var str; this.num = 1; this.annPath = currAnnPath; this.inAnn = inAnn; str = '<form id="frmipath" method="post" action="bbsipath.php?inann=' + inAnn + '&annpath=' + currAnnPath + '&title=' + currAnnTitle + '">'; str += '<input type="hidden" id="ipathAction" name="ipathAction" value="">'; str += '<input type="hidden" id="num" name="num" value="0">'; str += '<h1 class="bt">丝路</h1><div style="text-align:right">[<a href="bbs0anbm.php?path=' + currAnnPath + '">精华区目录</a>]'; str += '<table class="main wide"><col width="5%" /><col width="60%" /><col width="35%" />'; str += '<tr><th>#</th><th>标题 / 路径</th><th>操作</th></tr><tbody>'; w(str);}ipathWriter.prototype.i = function(title, path) { var str; ititle[this.num] = title; ipath[this.num] = path; str = '<tr><td class="center">' + this.num + '</td>'; str += '<td id="ipathCon' + this.num + '">' + ipathMakeItem(title, path) + '</td>'; str += '<td>'; if(title != '') { str += '<a href="javascript:ipathPaste(\'' + path + '\');">粘贴</a> '; str += '<a href="javascript:ipathModify(' + this.num + ');">改标题</a> '; } if(this.inAnn) str += '<a href="javascript:ipathSet(' + this.num + ');">设为当前目录</a>'; str += '</td></tr>'; this.num++; w(str);}ipathWriter.prototype.f = function() { var str; str = '</tbody></table><div id="ipathSetDiv"></div></form>'; str += '<form id="frmPaste" method="post"><input type="hidden" name="annAction" value="paste"><input type="hidden" name="annCount" value="0"></form>'; w(str);}function ipathPaste(path){ path = path.substr(9, path.length - 9); frmPaste.action = 'bbs0anbm.php?path=' + path; frmPaste.submit();}function ipathModify(num){ var str; if(ipathEditing != 0) document.getElementById('ipathCon' + ipathEditing).innerHTML = ipathMakeItem(ititle[ipathEditing], ipath[ipathEditing]); if(num != ipathEditing) { ipathEditing = num; if(num > 0) { str = '<input type="text" name="ipathTitle" size="40" maxlength="80" value="' + ititle[num] + '">'; str += '<input type="button" onclick="ipathDoModify();" value="修改"><br>' + ipath[num]; document.getElementById('ipathCon' + num).innerHTML = str; } } else ipathEditing = 0; }function ipathDoModify(){ if(ipathEditing != 0) { frmipath.ipathAction.value = 'modify'; frmipath.num.value = ipathEditing; frmipath.submit(); }}function ipathSet(num){ var co = true; var str; ipathModify(0); if(ititle[num] != "") co = confirm('要覆盖这个丝路吗?'); if(co) { frmipath.ipathAction.value = 'set'; frmipath.num.value = num; str = '<input type="hidden" name="ipathTitle" value="' + currAnnTitle + '">'; str += '<input type="hidden" name="ipathPath" value="' + currAnnPath + '">'; document.getElementById('ipathSetDiv').innerHTML = str; frmipath.submit(); }} var gTreeArts = new Array();function treeWriter(board, bid, gid, arts) { this.board = escape(board); this.bid = bid; this.gid = gid; var i, tI = new Array(); for (i = 0; i < arts.length; i++) { var node = {"id": arts[i][0], "reid": arts[i][1], "owner": arts[i][2], "first_child": -1, "last_child": -1, "next_sibling": -1, "showed": false}; gTreeArts[i] = node; tI[node.id] = i + 1; if (i > 0 && tI[node.reid]) { var par = gTreeArts[tI[node.reid] - 1]; if (par.first_child == -1) par.first_child = i; if (par.last_child != -1) gTreeArts[par.last_child].next_sibling = i; par.last_child = i; } } this.ifs = "";}treeWriter.prototype.s = function(idx, flag) { /* flag: -1: root, 1: last */ if (gTreeArts[idx].showed) return; gTreeArts[idx].showed = true; var id = gTreeArts[idx].id; var owner = gTreeArts[idx].owner; var url = 'bbscon.php?bid=' + this.bid + '&id=' + id; var ret = '<br/>'; var c = "treeFold"; if (flag == -1) c = "treeFoldRoot"; else if (flag == 1) c = "treeFoldLast"; ret += '<div class="' + c + '">'; if (flag == 0) { ret += '<div class="treeFoldLeaf"> </div>'; } ret += '<div class="tconPager smaller left">'; ret += '[<a href="' + url + '">本篇全文</a>] '; if (isLogin()) { ret += '[<a href="bbspst.php?board=' + this.board + '&reid=' + id + '">回复文章</a>] '; ret += '[<a href="bbspstmail.php?board=' + this.board + '&id=' + id + '">回信给作者</a>] '; } ret += '[本篇作者:<a href="bbsqry.php?userid=' + owner + '">' + owner + '</a>] '; ret += '[<a href="bbsdoc.php?board=' + this.board + '">进入讨论区</a>] '; ret += '[<a href="#top">返回顶部</a>]'; ret += '<div class="tnum">' + (idx+1) + '</div>'; ret += '</div><div class="article" id="art' + id + '"><div align="center">...载入中...</div></div>'; this.ifs += '<iframe width=0 height=0 frameborder="0" scrolling="no" src="' + url + '"></iframe>'; w(ret); var cur = gTreeArts[idx].first_child; while(cur != -1) { this.s(cur, (cur == gTreeArts[idx].last_child) ? 1 : 0); cur = gTreeArts[cur].next_sibling; } w("</div>");};treeWriter.prototype.o = function() { var i; this.s(0, -1); for(i=1;i<gTreeArts.length;i++) this.s(i, -1); //没连上根的那些枝条 w(this.ifs);};/* replymode: S/Y/N/R/A */function generateQuotation(c, mailmode, replymode) { replymode = replymode ? replymode.toLowerCase() : 's'; var subject = "", quotation = ""; var start, i; try { var s = c.split("\n"); /* 寻找标题 */ if (s.length > 1) { start = s[1].indexOf(":"); if (start != -1) { subject = s[1].substring(start + 2); if (subject.substring(0, 4) != "Re: ") subject = "Re: " + subject; } } if (replymode != 'n') { /* 寻找作者信息 */ var author = ""; if (s.length > 0) { var end = s[0].lastIndexOf(")"); start = s[0].indexOf(":"); if (start != -1 && end != -1) { author = s[0].substring(start + 2, end + 1); } } if (mailmode) { quotation += "\n【 在 " + author + " 的来信中提到: 】\n"; } else { quotation += "\n【 在 " + author + " 的大作中提到: 】\n"; } /* 处理引文 */ if (replymode == 'a') { for (i = 1; i < s.length; i++) { quotation += ": " + s[i].replace(/\r[\[\d;]+[a-z]/gi, "") + "\n"; } } else { for (i = 2; i < s.length; i++) { if (s[i].length == 0) break; } if (replymode == 'r') { for (i++; i < s.length; i++) { if (s[i].indexOf("※ 来源:·") == -1) { quotation += s[i].replace(/\r[\[\d;]+[a-z]/gi, "") + "\n"; } } } else { var qlines = 0; for (i++; i < s.length; i++) { if (s[i].substring(0,1) == "【") continue; if (s[i].substring(0,2) == ": ") continue; if (s[i] == "--") break; if (s[i].length == 0) continue; quotation += ": " + s[i].replace(/\r[\[\d;]+[a-z]/gi, "") + "\n"; /* filter <textarea> ? */ if (replymode == 's') { qlines++; if (qlines >= 3) { quotation += ": ..................."; break; } } } } } } } catch(e) { } return { "subject" : subject, "quotation" : quotation };}function showReplyForm(url) { if (readParaCookie() & 0x2000) return true; if (gIE5 || gKon) return true; var o = getObj("divReplyForm"); o.style.padding = '0.5em'; o.innerHTML = "载入中,请稍候……"; o = document.createElement('iframe'); o.style.display = 'none'; document.body.appendChild(o); o.src = url; return false;}function changeQM(m) { var f = getObj('rff'); if (f) { var rr = generateQuotation(strPrint, 0, m); f.value = rr.quotation; f.focus(); setCursorPosition(f, 0, 0); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -