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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [11.01完美版]梦网DZ5全新概念上传图片后期自动批量生成缩略图无数据库修改

[复制链接]
dreamnet 发表于 2006-10-26 04:23:11 | 显示全部楼层 |阅读模式
梦网 Dz5 全新概念的上传图片后期自动批量生成缩略图无数据库修改版+AJAX图片浏览 1.2版本
作者 dream
时间 2005-11-01
版本 V1.1
适应版本: DZ5.0
数据库升级:无
来自 多伦多足球梦网
演示 http://www.socool.ca/forum-78.html
注意事项:安装时仔细按照下面说明步骤进行,记得下载附件1
插件说明:一年多来,一直没有机会和时间对dz写插件,今天提供一个
传统的缩略图生成的做法是在上传图片的时候进行生成,但如果以前网站上已经有了图片,就没有办法自动
生成。现在我的做法是上传图片的时候不生成缩略图,而是在第一个浏览帖子的人浏览的时候,系统自动
判断是否服务器上已经有了缩略图,如果没有,就自动生成,如果有了,就直接调用,速度效率都很高。
颠覆传统的观念,让以前上传有图片的网站很轻松的拥有快速的浏览效果。
删除附件时,如果附件有图片,相应的缩略图也将同时删除,同步进行
安装难度:容易 大概10分钟

dream在本次插件中,一并融合了AJAX浏览图片的效果
大家可以上传多符图片后,点击其中一符图片,然后鼠标移动到弹出图片的左半部分或右半部分进行前面一图片
或后面一图片的直接浏览


效果见 多伦多足球梦网数码摄影版
http://www.socool.ca/forum-78.html

11.01更新
1. 修正附件不是图片,页面出现的错误提示
2. 修正发帖,编辑时 代码模式和所见即所得模式无法切换问题
在11.01前安装,IE左下角出现js错误的请做如下纠正
如果前面安装有错误的朋友可以根据78楼改,也可以把
  1. <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
  2. <script type="text/javascript" src="js/prototype.lite.js"></script>
  3. <script type="text/javascript" src="js/moo.fx.js"></script>
  4. <script type="text/javascript" src="js/litebox-1.0.js"></script>
复制代码

从模板viewthread删除
然后还是添加到header模板的</head>上面
另外生成一个header_post模板,这个模板内容为添加本插件之前的内容
然后打开post_newthread,post_newly,post_editpost 模板,把{template header}改为
{template header_post}
------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
在根目录下建一个目录名为 thumb_pic 的目录,权限为777,
检查attachments目录下的子目录,如果存在子目录,请在thumb_pic目录下面创建同样名称的子目录,属性
设置为777
(程序安装完成后,不再需要做这一步)


1.打开config.inc.php
找到
  1. $attachurl = 'attachments';
复制代码

后面添加
  1. $thumb_attachdir = './thumb_pic';
  2. $thumb_attachurl = 'thumb_pic';//www.socool.ca dream 服务器自动判断生成缩略图 2006-10-25
复制代码



2.打开include/attachment.func.php

  1. ?>
复制代码
前面添加
  1.    /*-------------------------------*/

  2. function thumbpic_create($bigPic){
  3. $max_width = 180;
  4. $max_height = 120;
  5. $imgQuality=90;
  6.         $attachurl = 'attachments';                        // 附件路径 URL 地址 , 不加 "/"
  7.         $srcFile =$attachurl.'/'.$bigPic;
  8.                  $rootdir="thumb_pic";
  9.                 $thumb_dir = './'.$rootdir.'/';
  10.                  if(!is_dir($thumb_dir)) {
  11.                         mkdir($thumb_dir, 0777);
  12.                         fclose(fopen($thumb_dir.'/index.htm', 'w'));
  13.                 }
  14.                 $config_prefix = $thumb_dir;

  15.             
  16.    $data=GetImageSize($srcFile,&$info);
  17.             
  18.             
  19.   if($data[0]<=$data[1] and $data[1]>=$max_height){
  20.      $height=$max_height;
  21.      $width=intval($height*$data[0]/$data[1]);
  22.   }
  23.   if($data[0]>=$data[1] and $data[0]>=$max_width){
  24.      $width=$max_width;
  25.      $height=intval($width*$data[1]/$data[0]);
  26.   }
  27.   if($data[0]<$max_width and $data[1]<$max_height){
  28.      $width=$data[0];
  29.      $height=$data[1];
  30.   }

  31.             switch($data[2]){
  32.                   case 1:
  33.                        $im=@ImageCreateFromGIF($srcFile);
  34.                        break;
  35.                   case 2:
  36.                        $im=@ImageCreateFromJPEG($srcFile);
  37.                        break;
  38.                   case 3:
  39.                        $im=@ImageCreateFromPNG($srcFile);
  40.                        break;
  41.            }

  42.          
  43.          $srcW=ImageSX($im);
  44.            $srcH=ImageSY($im);

  45.                         if(file_exists($config_prefix.$bigPic)) {
  46.                 continue;
  47.              }
  48.          $to=imagecreatetruecolor($width,$height);
  49.          
  50.          
  51. @imagecopyresampled($to,$im,0,0,0,0,$width,$height,$srcW,$srcH);
  52.             
  53.             //保存文件
  54.            switch($data[2]){
  55.                                  case '1':ImageGIF($to,$config_prefix.$bigPic, $imgQuality); break;
  56.    case '2':ImageJPEG($to,$config_prefix.$bigPic, $imgQuality); break;
  57.    case '3':ImagePNG($to,$config_prefix.$bigPic, $imgQuality); break;
  58.    default:ImageJPEG($to,$config_prefix.$bigPic, $imgQuality); break;
  59.      //      ImageJpeg($ni,$srcFile, $imgQuality);
  60.                         }
  61.            
  62.         imagedestroy($im);
  63.         imagedestroy($to);

  64. }
复制代码



3.打开/include/post.func.php
找到
  1. $attach_dir = $attachdir.'/'.$attach_subdir;
复制代码

后面添加
  1.                         //www.socool.ca dream 服务器自动判断生成缩略图hack 2006-10-25
  2.                         $thumb_attach_dir = 'thumb_pic/'.$attach_subdir;
  3.                         if(!is_dir($thumb_attach_dir)) {
  4.                                 mkdir($thumb_attach_dir, 0777);
  5.                                 fclose(fopen($thumb_attach_dir.'/index.htm', 'w'));
  6.                         }
  7.                         //end
复制代码


3. 打开viewthread.php找到
  1. attach['attachimg'] = $showimages && $attachimgpost && in_array($extension, array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp')) && (!$attach['readperm'] || $readaccess >= $attach['readperm']) ? 1 : 0;
复制代码

后面添加
  1. //added by dream 2006-10-22, auto create thumbpic if no thumbpic on server
  2.                                         if ($attach['attachimg'] = 1){
  3.                                       if(!file_exists("$thumb_attachurl/$attach[attachment]")) {
  4.                                   $thumb_img =thumbpic_create("$attach[attachment]");
  5.                                    }
  6.                                         }//end
复制代码


4. 打开include/editpost.inc.php 找到(共三或四处)
  1. @unlink($attachdir.'/'.$attach['attachment']);
复制代码

后面添加
  1. @unlink($thumb_attachdir.'/'.$attach['attachment']);//www.socool.ca dream 删除服务器缩略图
复制代码


5. 打开topicadmin.php找到(共两处)
  1. @unlink($attachdir.'/'.$attach['attachment']);
复制代码

后面添加
  1. @unlink($thumb_attachdir.'/'.$attach['attachment']);//www.socool.ca dream 删除服务器缩略图
复制代码


6.下载我提供的images,js 和css附件,加压后上传到服务器根目录

7.打开templates/default/header.htm
找到 </head>前面添加
  1. <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
  2. <script type="text/javascript" src="js/prototype.lite.js"></script>
  3. <script type="text/javascript" src="js/moo.fx.js"></script>
  4. <script type="text/javascript" src="js/litebox-1.0.js"></script>
复制代码


找到
  1. <body onkeydown="if(event.keyCode==27) return false;">
复制代码

改为
  1. <body onload="initLightbox()" onkeydown="if(event.keyCode==27) return false;">
复制代码


8.打开post_newthread,post_newreply,post_editpost
找到{template header}改为{template header_post}

9.打开模板 viewthread.htm

找到
  1. <!--{if $attachrefcheck}-->
  2.                                                 <img src="attachment.php?aid=$attach[aid]&noupdate=yes" border="0" onload="if(this.width >screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='{lang image_open_zoom}';}" onmouseover="if(this.resized) this.style.cursor='hand';" onclick="if(!this.resized) {return false;} else {window.open('attachment.php?aid=$attach[aid]');}" onmousewheel="return imgzoom(this);" alt="" />
  3.                                         <!--{else}-->
  4.                                                 <img src="$thumb_attachurl/$attach[attachment]" border="0" onload="if(this.width >screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='{lang image_open_zoom}';}" onmouseover="if(this.resized) this.style.cursor='hand';" onclick="if(!this.resized) {return false;} else {window.open('$attachurl/$attach[attachment]');}" onmousewheel="return imgzoom(this);" alt="" />
  5.                                         <!--{/if}-->
复制代码

改为
  1. <!--{if $attachrefcheck}-->
  2.                                                 <a href="attachment.php?aid=$attach[aid]&noupdate=yes" rel="lightbox[socool]"  ><img src="$thumb_attachurl/$attach[attachment]" border="0" alt="" /></a>
  3.                                         <!--{else}-->
  4.                                                 <a href="$attachurl/$attach[attachment]" rel="lightbox[socool]"  ><img src="$thumb_attachurl/$attach[attachment]" border="0"  alt="" /></a>
  5.                                         <!--{/if}-->
复制代码

[ 本帖最后由 dreamnet 于 2006-11-1 22:31 编辑 ]

本帖子中包含更多资源

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

x
Flash菲 发表于 2006-10-26 04:34:34 | 显示全部楼层
为什么这个东西那么多人发???
回复

使用道具 举报

cnstudent 发表于 2006-10-26 04:35:02 | 显示全部楼层
:)dreamnet好久不见了
回复

使用道具 举报

 楼主| dreamnet 发表于 2006-10-26 04:43:58 | 显示全部楼层
在viewthread里面看到的小图是自动的缩略图
而下面的效果是附加的,比lightbox体积减小了近10倍
一直没有时间研究dz5 ,我的还是用dz25的
今天在自己计算机上安装了dz5,就顺便发布了这个hack
回复

使用道具 举报

情已伤 发表于 2006-10-26 04:44:07 | 显示全部楼层
滴帮了..........
回复

使用道具 举报

panwei 发表于 2006-10-26 04:44:26 | 显示全部楼层
这个要支持一下~~!
回复

使用道具 举报

Flash菲 发表于 2006-10-26 04:47:26 | 显示全部楼层
https://discuz.dismall.com/viewth ... =%CB%F5%C2%D4%CD%BC

我想知道这个东西又是。。。。。
回复

使用道具 举报

 楼主| dreamnet 发表于 2006-10-26 04:48:26 | 显示全部楼层
那个是我昨天发的,只是一个功能,今天发布的整个基于dz5的hack
回复

使用道具 举报

woai80 发表于 2006-10-26 05:17:23 | 显示全部楼层
4. 打开include/editpost.inc.php 找到(共三处)
----------
我这里怎么有四处?
回复

使用道具 举报

woai80 发表于 2006-10-26 05:30:52 | 显示全部楼层
Warning: imagesx(): supplied argument is not a valid Image resource in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 132

Warning: imagesy(): supplied argument is not a valid Image resource in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 133

Warning: imagecreatetruecolor(): Invalid image dimensions in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 138

Warning: imagejpeg(): supplied argument is not a valid Image resource in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 148

Warning: imagedestroy(): supplied argument is not a valid Image resource in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 152

Warning: imagedestroy(): supplied argument is not a valid Image resource in d:\www\jiuhao\wwwroot\bbs\include\attachment.func.php on line 153
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-22 12:37 , Processed in 0.030581 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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