請選擇 進入手機版 | 繼續訪問電腦版

東里論壇

 找回密碼
 立即註冊

QQ登录

只需一步,快速开始

搜索
查看: 2132|回復: 0

[使用心得] Discuz! X3.3优化修改(三)——增加插入全部图片功能,并解决插入全部附件时重复插入的问题

[複製鏈接]

312

主題

459

帖子

2910

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
2910
發表於 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,找到:
  1.                         <div class="notice upnf">
  2.                                 {lang e_img_insertphoto}
複製代碼

在后面添加:
  1. <div style="float:right;"><a onclick="insertAllattachimgTagHeng();return false;" href="javascript:;" class="xi2">插入全部图片(横排)</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a onclick="insertAllattachimgTagShu();return false;" href="javascript:;" class="xi2">插入全部图片(竖排)</a></div>
複製代碼

要注意,因为里面添加了汉字,所以保存的时候要注意编码,像我的论坛是UTF-8编码的,就另存为“UTF-8无签名”,否则会显示乱码。

再打开打开\static\js\forum_post.js,在最下面添加:
  1. function insertAllattachimgTagHeng() {
  2. var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
  3. for(var i = 0; i < attachListObj.length; i++) {
  4.   if(typeof attachListObj[i] == "object") {
  5.    var attach = attachListObj[i];
  6.    var ids = attach.id.split('_td_');
  7.    if(ids[0] == 'image') {
  8.     insertAttachimgTag(ids[1]);
  9.     var txt = wysiwyg ? '\r\n<br/>' : '';
  10.     insertText(txt, strlen(txt), 0);
  11.    }
  12.   }
  13. }
  14. doane();
  15. }

  16. function insertAllattachimgTagShu() {
  17. var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
  18. var inserIds = new Array();
  19. for(var i = 0; i < attachListObj.length; i++) {
  20.   if(typeof attachListObj[i] == "object") {
  21.    var attach = attachListObj[i];
  22.    var ids = attach.id.split('_td_');
  23.    if(ids[0] == 'image'&& inserIds.indexOf(ids[1]) == -1) {
  24.     insertAttachimgTag(ids[1]);
  25. inserIds[i] = ids[1];
  26.     var txt = wysiwyg ? '\r\n\r\n' : '\r\n\r\n';
  27.     insertText(txt, strlen(txt), 0);
  28.    }
  29.   }
  30. }
  31. doane();
  32. }
複製代碼

需要注意的是,上面插入全部图片时的横排竖排效果,只Discuz! 编辑器“纯文本”模式下有效,所见即所得模式下只能插入图片,无法排版。
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|小黑屋|手機版|Archiver|東里論壇 ( 粤ICP备14015598号 ) 公安备案图标粤公网安备 44512202000019号

GMT+8, 2019-6-18 07:44 , Processed in 0.109376 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表