Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 鼠标掠过主题列表图片附件即时预览 FOR DZ7.0 20081224 支持IE6,IE7,FF

[复制链接]
108225693 发表于 2009-1-19 13:43:56 | 显示全部楼层 |阅读模式
插件发布
插件名称: 鼠标掠过主题列表图片附件即时预览
插件来源:
适用版本: Discuz! 7.0
语言编码: GBK简体 UTF8简体 BIG5繁体 
最后更新时间:
插件作者: 108225693
插件简介: 鼠标掠过主题列表图片附件即时预览,支持IE6,IE7,FF。
本帖最后由 108225693 于 2009-3-31 15:14 编辑

修改自 [KaiBBS发布]鼠标掠过主题列表图片附件即时预览 FOR D6.1
https://discuz.dismall.com/viewthread ... 3%B1%EA%C2%D4%B9%FD

编码转化,可以把源代码放到记事本里另存为 UFT8,BIG5,GBK 格式就可以对应支持了

不支持外站链入图片和盗链图片,只对论坛本地的图片附件显示,有时间在想办法解决,或者请教高手

------------------------------------------------------------------------------------

IE6下


1E7下


FF下


Safari下


1.后台升级数据库
  1. ALTER TABLE cdb_forums ADD valueattach tinyint(1) NOT NULL default '0';
  2. ALTER TABLE cdb_forumfields ADD valueattach tinyint(1) NOT NULL default '0';
复制代码
2.修改 /forumdisplay.php
查找
  1. while(($querysticky && $thread = $sdb->fetch_array($querysticky)) || ($query && $thread = $sdb->fetch_array($query)) || ($queryfloat && $thread = $sdb->fetch_array($queryfloat))) {
复制代码
上面加
  1. $querya = $db->query("SELECT tid, filetype, attachment FROM {$tablepre}attachments ORDER BY aid");

  2. while($attach = $db->fetch_array($querya)){

  3.         $attachtid[] = $attach['tid'];

  4.         $attachment[] = $attach['attachment'];

  5.         $attachtype[] = $attach['filetype'];

  6. }
复制代码
查找
  1. $threadlist[] = $thread;
复制代码
上面加
  1. if($thread['attachment']){
  2.                  foreach($attachtid as $key => $value){
  3.                          if($thread['tid'] == $value){
  4.                                  if($isimage = preg_match("/^image\/.+/", $attachtype[$key])){
  5.                                          $thread['attach'] = $attachment[$key];
  6.                                  }
  7.                          }
  8.                  }        
  9.          }
复制代码
3.修改 admin/forums.inc.php
查找
  1. showsetting('forums_edit_basic_display', 'statusnew', $forum['status'], 'radio');
复制代码
下面加
  1. showsetting('forums_edit_valueattach', 'valueattachnew', $forum['valueattach'], 'radio');
复制代码
查找
  1. password='$passwordnew',
复制代码
后面加(注意前后有空格,不然会出错):
  1. valueattach='$valueattachnew',
复制代码
4.修改 template/default/admincp.lang.php
查找
  1. 'forums_edit_basic_display_comment' => '选择“否”将暂时将版块隐藏不显示,但版块内容仍将保留,且用户仍可通过直接提供带有 fid 的 URL 访问到此版块',
复制代码
下面加
  1. 'forums_edit_valueattach' => '选择是否使用附件图片主题预览功能:',
  2. 'forums_edit_valueattach_comment' => '在版块每个主题上显示附件图片预览。',
复制代码
5.修改 templates\default\header.htm (如果你使用的不是默认DZ风格请根据个人情况修改)
查找
  1. <script type="text/javascript" src="include/js/common.js?{VERHASH}"></script>
复制代码
后面加
  1. <script type="text/javascript" src="include/js/showimage.js?{VERHASH}"></script>
复制代码
6.修改模板 templates\default\forumdisplay.htm  (如果你使用的不是默认DZ风格请根据个人情况修改) 查找
  1. <li class="wide"><a href="viewthread.php?tid=$tid" $thread['subjectstyles'] target="_blank">$thread[subject]</a><cite>-<a href="space.php?uid=$thread[authorid]" target="_blank">$thread[author]</a></cite></li>
复制代码
替换成
  1. <li>

  2. <!=========主题列表图片附件即时预览 DZ7.0================>

  3. <!--{if $thread['displayorder'] == 1 || $thread['displayorder'] == 2 || $thread['displayorder'] == 3 }-->
  4.    <!--{if $thread['attach']}-->
  5.         <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
  6.                 <a onMouseOver="return enlarge('attachments/$thread[attach]',event)" onMouseOut="closepreview()" yle="cursor:hand"
  7. href="viewthread.php?tid=$thread[tid]&extra=$extra$thread['subjectstyles'] target="_blank""$thread[highlight]>$thread[subject]</a>
  8.       <!--{else}-->
  9.      <cite><a href="viewthread.php?tid=$thread[tid]">$thread[subject]</a>
  10. <!--{/if}-->
  11. <!--{else}-->
  12. <!--{if $forum['valueattach']}-->
  13. <!--{if $thread['attach']}-->
  14.         <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
  15.                 <a onMouseOver="return enlarge('attachments/$thread[attach]',event)" onMouseOut="closepreview()" style="cursor:hand" href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>"$thread[highlight]>$thread[subject]</a>
  16.       <!--{else}-->
  17.      <cite><a href="viewthread.php?tid=$thread[tid]">$thread[subject]</a>
  18. <!--{/if}-->
  19. <!--{else}-->
  20. <a href="viewthread.php?tid=$thread[tid]">$thread[subject]</a>
  21. <!--{/if}-->
  22. <!--{/if}-->

  23. <!==========主题列表图片附件即时预览 DZ7.0===============>

  24. </li>
复制代码
查找
  1. <span id="thread_$thread[tid]"><a href="viewthread.php?tid=$thread[tid]&amp;extra=$extra"$thread[highlight]>$thread[subject]</a></span>
复制代码
替换成
  1. <span id="thread_$thread[tid]">

  2. <!=========主题列表图片附件即时预览 DZ7.0================>

  3. <!--{if $thread['displayorder'] == 1 || $thread['displayorder'] == 2 || $thread['displayorder'] == 3 }-->
  4. <!--{if $thread['attach']}-->
  5.         <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
  6.         <a onMouseOver="return enlarge('attachments/$thread[attach]',event)" onMouseOut="closepreview()" style="cursor:hand" href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
  7.       <!--{else}-->
  8.      <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
  9. <!--{/if}-->
  10. <!--{else}-->
  11. <!--{if $forum['valueattach']}-->
  12. <!--{if $thread['attach']}-->
  13.         <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
  14.        <a onMouseOver="return enlarge('attachments/$thread[attach]',event)" onMouseOut="closepreview()" style="cursor:hand" href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
  15.       <!--{else}-->
  16.      <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
  17. <!--{/if}-->
  18. <!--{else}-->
  19. <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
  20. <!--{/if}-->
  21. <!--{/if}-->

  22. <!==========主题列表图片附件即时预览 DZ7.0===============>

  23.      </span>
复制代码
下载附件showimage.rar解压复制到论坛根目录下的 \include\js 目录下
在后台开启功能,更新缓存,刷新页面。安装成功!



修改缩略图大小在showimage.js 里
查找
  1. '<div style="background-color:#E1E3E5;padding:5px;"><img src="'+which+'" style="width:expression(this.width > 600 && (this.height-400) <= (this.width-600) ? 600:true); height:expression(this.height >400 &&(this.height-400)>(this.width-600)? 400:true); max-width:600px; max-height:400px;"></div>'
复制代码
把所有的 600 替换成你图片的像素宽度
把所有的 400 替换成你图片的像素高度













-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
错误修正(看清楚了自己的问题在修改)
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

1.图片定位变形不居中?
如果安装完后出现图片居底,修改一下 templates\default\forumdisplay.htm
  1. <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
复制代码
替换成
  1. <div id="showimage" style="position:fixed; *position:absolute; *+position:absolute; margin-top: -750px; *margin-top: -900px; margin-left: 380px; *margin-left:150px; *+margin-left:80px; visibility:hidden; border:1px"></div>
复制代码
一共有4处,定位会居中一点。没有问题的不要修改。

2.不能显示批量上传的图片附件?
对批量上传图片不显示的问题,只有等官方发文件类型分类才能实现了
用FLASH的批量上传会把上传的所有文件类型定为application/octet-stream ,是为了适应任何类型文件.
而image/pjpeg才是能被显示出来的图片文件类型,这个只能到数据库 cdb_attachments 改 filetype 字段
解决方法:再次修改 /forumdisplay.php
先删除
  1. if($isimage = preg_match("/^image\/.+/", $attachtype[$key]))
复制代码
在查找
  1. $querya = $db->query("SELECT tid, filetype, attachment FROM {$tablepre}attachments ORDER BY aid
复制代码
修改为
  1. $querya = $db->query("SELECT tid, filetype, attachment FROM {$tablepre}attachments WHERE `isimage` = 1 ORDER BY aid
复制代码
这种做法非常耗资源...OTL

3.修改显示图片顺序?
默认的是显示最后一个图片的缩略图,要想显示随机图片的缩略图,再次修改 /forumdisplay.php
查找
  1. ORDER BY aid");
复制代码
修改为
  1. ORDER BY aid AND isimage=1");
复制代码
4.想不显示已售价的图片?
再次修改 /forumdisplay.php
查找
  1. ORDER BY aid");
复制代码
修改为
  1. ORDER BY aid AND price=0");
复制代码
5.DZ7 20081224以后的版本会出现图片定位问题?
在修改 templates\default\forumdisplay.htm
  1. <div id="showimage" style="position:fixed; _position:absolute; margin-top: -400px; _margin-top: -600px; margin-left: 250px; _margin-left: 100px; visibility:hidden; border:1px"></div>
复制代码
根据自己的情况修改,注意不同浏览器的修改位置

6.卸载?
执行SQL
  1. ALTER TABLE cdb_forums DROP valueattach;
  2. ALTER TABLE cdb_forumfields DROP valueattach;
复制代码
在把修改过的文件反相修改回去

相关帖子:
Google产品 【Google Sitemap Generator】服务器内多个网站自动生成提交sitemap
DZ7 20081224 首页横排美化,带版块简介和图标及最新帖子,FF和IE7下正常显示

本帖子中包含更多资源

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

x

评分

1

查看全部评分

郭鑫 发表于 2009-1-19 13:57:14 | 显示全部楼层
不错,我前排支持一下
回复

使用道具 举报

fjuser 发表于 2009-1-19 14:48:24 | 显示全部楼层
有没有utf-8的?
回复

使用道具 举报

广告 发表于 2009-1-19 15:08:44 | 显示全部楼层
恩 不错啊 支持个。
回复

使用道具 举报

空间11a 发表于 2009-1-19 15:16:07 | 显示全部楼层
哇塞  楼主真是太厉害了·1   学习 ·!
回复

使用道具 举报

武松打炮 发表于 2009-1-19 15:16:42 | 显示全部楼层
不错,记录一下。
回复

使用道具 举报

zhenli 发表于 2009-1-19 16:38:00 | 显示全部楼层
支持了啊
回复

使用道具 举报

肥爺 发表于 2009-1-19 16:49:27 | 显示全部楼层
收藏!!!!!!~~~~~~~
回复

使用道具 举报

生产力 发表于 2009-1-19 22:52:38 | 显示全部楼层
这个真的不错!

不顶都不行
回复

使用道具 举报

kuliwal 发表于 2009-1-20 02:42:28 | 显示全部楼层
支持············
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-4-20 13:17 , Processed in 0.285684 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表