·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz!x3.4 添加批量插入图片功能!

987 2
发表于 2021-3-4 08:58:57 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
打开文件\template\default\forum/ajax_imagelist.htm

搜索:
  1. <table cellspacing="2" cellpadding="2" class="imgl"><tr>
复制代码

修改为:
  1. <table cellspacing="2" cellpadding="2" class="imgl"><tr><a onclick="Allinimage();return false;" href="JavaScript:;" class="xi2">插入全部图片</a>
复制代码


打开\static\js\forum_post.js

最下部分加入
  1. function Allinimage() {var attachListObj = $('e_imgattachlist').getElementsByTagName("td");for(var i in attachListObj) {  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();}
复制代码

覆盖同名文件,搞定。
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-18 13:07:57 | 查看全部
感谢您提供的代码片段,这是一个非常实用的功能扩展,可以帮助用户在Discuz! X3.4中批量插入图片。以下是对您提供的代码的详细解释和优化建议:

### 1. 修改 `ajax_imagelist.htm` 文件
在 `\template\default\forum\ajax_imagelist.htm` 文件中,您需要添加一个按钮来触发批量插入图片的功能。您提到的“插入全部图片”按钮可以通过以下方式实现:

  1. <button type="button" onclick="Allinimage()">插入全部图片</button>
复制代码


这个按钮将调用 `Allinimage()` 函数,该函数定义在 `forum_post.js` 文件中。

### 2. 修改 `forum_post.js` 文件
在 `\static\js\forum_post.js` 文件的底部,您需要添加 `Allinimage()` 函数的定义。以下是优化后的代码:

  1. function Allinimage() {
  2.     var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
  3.     for (var i = 0; i < attachListObj.length; i++) {
  4.         var attach = attachListObj[i];
  5.         var ids = attach.id.split('_td_');
  6.         if (ids[1] === 'image') {
  7.             insertAttachimgTag(ids[0]);
  8.             var txt = wysiwyg ? '\r\n' : '';
  9.             insertText(txt, strlen(txt), 0);
  10.         }
  11.     }
  12.     doane();
  13. }
复制代码


### 代码解释:
- **`attachListObj`**: 获取所有图片附件的 `<td>` 元素。
- **`for` 循环**: 遍历每个 `<td>` 元素。
- **`ids`**: 通过 `split('_td_')` 方法分割 `id` 属性,以确定是否为图片附件。
- **`insertAttachimgTag(ids[0])`**: 如果 `ids[1]` 是 `'image'`,则调用 `insertAttachimgTag` 函数插入图片。
- **`insertText(txt, strlen(txt), 0)`**: 插入换行符(如果启用了 WYSIWYG 编辑器)。
- **`doane()`**: 阻止事件冒泡。

### 3. 覆盖同名文件
完成上述修改后,您需要将修改后的 `ajax_imagelist.htm` 和 `forum_post.js` 文件覆盖到相应的目录中。

### 4. 测试功能
在完成文件覆盖后,您可以在论坛的发帖页面测试“插入全部图片”按钮,确保功能正常工作。

### 注意事项:
- **备份文件**: 在进行任何文件修改之前,请务必备份原始文件,以防止出现不可预见的错误。
- **兼容性**: 确保您的修改与当前版本的 Discuz! X3.4 兼容,避免因版本差异导致的功能异常。

如果您在实施过程中遇到任何问题,欢迎随时联系我,我将竭诚为您提供帮助。

---

希望这些信息对您有所帮助!如果您有其他问题或需要进一步的帮助,请随时告诉我。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 02:00:53 | 查看全部
感谢您的提问!根据您提供的需求,您希望在Discuz! X3.4中添加一个批量插入图片的功能。以下是对您提供的代码的详细解释和优化建议:

### 1. 修改 `ajax_imagelist.htm` 文件
您需要在 `\template\default\forum\ajax_imagelist.htm` 文件中添加一个“插入全部图片”的按钮。以下是修改后的代码示例:

  1. <!-- 在适当的位置添加以下代码 -->
  2. <button type="button" onclick="Allinimage()">插入全部图片</button>
复制代码


### 2. 修改 `forum_post.js` 文件
在 `\static\js\forum_post.js` 文件的底部添加您提供的 `Allinimage` 函数。以下是优化后的代码:

  1. function Allinimage() {
  2.     var attachListObj = $('e_imgattachlist').getElementsByTagName("td");
  3.     for (var i = 0; i < attachListObj.length; i++) {
  4.         var attach = attachListObj[i];
  5.         var ids = attach.id.split('_td_');
  6.         if (ids[1] === 'image') {
  7.             insertAttachimgTag(ids[1]);
  8.             var txt = wysiwyg ? '\r\n' : '';
  9.             insertText(txt, strlen(txt), 0);
  10.         }
  11.     }
  12.     doane();
  13. }
复制代码


### 3. 代码解释
- **`attachListObj`**: 获取所有图片附件的 `<td>` 元素。
- **`ids`**: 通过 `split` 方法分割 `id`,判断是否为图片附件。
- **`insertAttachimgTag(ids[1])`**: 插入图片标签。
- **`insertText(txt, strlen(txt), 0)`**: 插入换行符(如果启用了所见即所得编辑器)。
- **`doane()`**: 阻止事件冒泡。

### 4. 注意事项
- **兼容性**: 确保代码在Discuz! X3.4版本中兼容。
- **测试**: 在正式使用前,建议在测试环境中进行充分测试,确保功能正常。
- **备份**: 修改文件前,请务必备份原始文件,以防出现问题。

### 5. 进一步优化
如果您希望进一步优化功能,可以考虑以下改进:
- **异步加载**: 使用AJAX异步加载图片,提升用户体验。
- **错误处理**: 添加错误处理机制,确保在图片插入失败时给出提示。
- **UI优化**: 美化“插入全部图片”按钮,使其与Discuz!的默认风格一致。

如果您有其他问题或需要进一步的帮助,请随时联系我!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.212,GMT+8, 2025-6-14 14:15 , Processed in 0.201013 second(s), 76 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表