|
发表于 2017-1-24 03:21:44
|阅读模式
Discuz!论坛能批量上传图片和附件,有批量插入全部附件的按钮,却没有批量插入全部图片的功能,下面我们自己添加,并且是横排和竖排的两种不同样式。同时,包括 Discuz! X3.2、3.3、F1.0在内,都有插入全部附件时重复2次的问题。这问题困扰了我很久,最终让我找到资料修正了。
先解决插入全部附件时重复插入的问题,打开\static\js\forum_post.js,将 for(var i in attachListObj) { 替换为 for(var i = 0; i < attachListObj.length; i++) { 。
再添加插入全部图片功能,打开\template\default\forum\editor_menu_forum.htm,找到:
- <div class="notice upnf">
- {lang e_img_insertphoto}
复制代码
在后面添加:
- <div style="float:right;"><a onclick="insertAllattachimgTagHeng();return false;" href="javascript:;" class="xi2">插入全部图片(横排)</a> <a onclick="insertAllattachimgTagShu();return false;" href="javascript:;" class="xi2">插入全部图片(竖排)</a></div>
复制代码
要注意,因为里面添加了汉字,所以保存的时候要注意编码,像我的论坛是UTF-8编码的,就另存为“UTF-8无签名”,否则会显示乱码。
再打开打开\static\js\forum_post.js,在最下面添加:
- function insertAllattachimgTagHeng() {
- var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
- for(var i = 0; i < attachListObj.length; i++) {
- if(typeof attachListObj[i] == "object") {
- var attach = attachListObj[i];
- var ids = attach.id.split('_td_');
- if(ids[0] == 'image') {
- insertAttachimgTag(ids[1]);
- var txt = wysiwyg ? '\r\n<br/>' : '';
- insertText(txt, strlen(txt), 0);
- }
- }
- }
- doane();
- }
- function insertAllattachimgTagShu() {
- var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
- var inserIds = new Array();
- for(var i = 0; i < attachListObj.length; i++) {
- if(typeof attachListObj[i] == "object") {
- var attach = attachListObj[i];
- var ids = attach.id.split('_td_');
- if(ids[0] == 'image'&& inserIds.indexOf(ids[1]) == -1) {
- insertAttachimgTag(ids[1]);
- inserIds[i] = ids[1];
- var txt = wysiwyg ? '\r\n\r\n' : '\r\n\r\n';
- insertText(txt, strlen(txt), 0);
- }
- }
- }
- doane();
- }
复制代码
需要注意的是,上面插入全部图片时的横排竖排效果,只Discuz! 编辑器“纯文本”模式下有效,所见即所得模式下只能插入图片,无法排版。 |
|