立即註冊  找回密码

QQ登录

只需一步,快速开始

开启辅助访问 切换到宽版

東里論壇

搜索
查看: 7634|回复: 0

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

[复制链接]

335

主题

486

帖子

3089

积分

管理員

Rank: 9Rank: 9Rank: 9

积分
3089
发表于 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, 2024-5-9 00:11 , Processed in 0.116945 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.