梦网 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楼改,也可以把
- <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
- <script type="text/javascript" src="js/prototype.lite.js"></script>
- <script type="text/javascript" src="js/moo.fx.js"></script>
- <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
找到
- $attachurl = 'attachments';
复制代码
后面添加
- $thumb_attachdir = './thumb_pic';
- $thumb_attachurl = 'thumb_pic';//www.socool.ca dream 服务器自动判断生成缩略图 2006-10-25
复制代码
2.打开include/attachment.func.php
在前面添加
- /*-------------------------------*/
- function thumbpic_create($bigPic){
- $max_width = 180;
- $max_height = 120;
- $imgQuality=90;
- $attachurl = 'attachments'; // 附件路径 URL 地址 , 不加 "/"
- $srcFile =$attachurl.'/'.$bigPic;
- $rootdir="thumb_pic";
- $thumb_dir = './'.$rootdir.'/';
- if(!is_dir($thumb_dir)) {
- mkdir($thumb_dir, 0777);
- fclose(fopen($thumb_dir.'/index.htm', 'w'));
- }
- $config_prefix = $thumb_dir;
-
- $data=GetImageSize($srcFile,&$info);
-
-
- if($data[0]<=$data[1] and $data[1]>=$max_height){
- $height=$max_height;
- $width=intval($height*$data[0]/$data[1]);
- }
- if($data[0]>=$data[1] and $data[0]>=$max_width){
- $width=$max_width;
- $height=intval($width*$data[1]/$data[0]);
- }
- if($data[0]<$max_width and $data[1]<$max_height){
- $width=$data[0];
- $height=$data[1];
- }
- switch($data[2]){
- case 1:
- $im=@ImageCreateFromGIF($srcFile);
- break;
- case 2:
- $im=@ImageCreateFromJPEG($srcFile);
- break;
- case 3:
- $im=@ImageCreateFromPNG($srcFile);
- break;
- }
-
- $srcW=ImageSX($im);
- $srcH=ImageSY($im);
- if(file_exists($config_prefix.$bigPic)) {
- continue;
- }
- $to=imagecreatetruecolor($width,$height);
-
-
- @imagecopyresampled($to,$im,0,0,0,0,$width,$height,$srcW,$srcH);
-
- //保存文件
- switch($data[2]){
- case '1':ImageGIF($to,$config_prefix.$bigPic, $imgQuality); break;
- case '2':ImageJPEG($to,$config_prefix.$bigPic, $imgQuality); break;
- case '3':ImagePNG($to,$config_prefix.$bigPic, $imgQuality); break;
- default:ImageJPEG($to,$config_prefix.$bigPic, $imgQuality); break;
- // ImageJpeg($ni,$srcFile, $imgQuality);
- }
-
- imagedestroy($im);
- imagedestroy($to);
- }
复制代码
3.打开/include/post.func.php
找到- $attach_dir = $attachdir.'/'.$attach_subdir;
复制代码
后面添加
- //www.socool.ca dream 服务器自动判断生成缩略图hack 2006-10-25
- $thumb_attach_dir = 'thumb_pic/'.$attach_subdir;
- if(!is_dir($thumb_attach_dir)) {
- mkdir($thumb_attach_dir, 0777);
- fclose(fopen($thumb_attach_dir.'/index.htm', 'w'));
- }
- //end
复制代码
3. 打开viewthread.php找到
- attach['attachimg'] = $showimages && $attachimgpost && in_array($extension, array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp')) && (!$attach['readperm'] || $readaccess >= $attach['readperm']) ? 1 : 0;
复制代码
后面添加
- //added by dream 2006-10-22, auto create thumbpic if no thumbpic on server
- if ($attach['attachimg'] = 1){
- if(!file_exists("$thumb_attachurl/$attach[attachment]")) {
- $thumb_img =thumbpic_create("$attach[attachment]");
- }
- }//end
复制代码
4. 打开include/editpost.inc.php 找到(共三或四处)
- @unlink($attachdir.'/'.$attach['attachment']);
复制代码
后面添加
- @unlink($thumb_attachdir.'/'.$attach['attachment']);//www.socool.ca dream 删除服务器缩略图
复制代码
5. 打开topicadmin.php找到(共两处)
- @unlink($attachdir.'/'.$attach['attachment']);
复制代码
后面添加
- @unlink($thumb_attachdir.'/'.$attach['attachment']);//www.socool.ca dream 删除服务器缩略图
复制代码
6.下载我提供的images,js 和css附件,加压后上传到服务器根目录
7.打开templates/default/header.htm
找到 </head>前面添加
- <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
- <script type="text/javascript" src="js/prototype.lite.js"></script>
- <script type="text/javascript" src="js/moo.fx.js"></script>
- <script type="text/javascript" src="js/litebox-1.0.js"></script>
复制代码
找到- <body onkeydown="if(event.keyCode==27) return false;">
复制代码
改为
- <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
找到
- <!--{if $attachrefcheck}-->
- <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="" />
- <!--{else}-->
- <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="" />
- <!--{/if}-->
复制代码
改为
- <!--{if $attachrefcheck}-->
- <a href="attachment.php?aid=$attach[aid]&noupdate=yes" rel="lightbox[socool]" ><img src="$thumb_attachurl/$attach[attachment]" border="0" alt="" /></a>
- <!--{else}-->
- <a href="$attachurl/$attach[attachment]" rel="lightbox[socool]" ><img src="$thumb_attachurl/$attach[attachment]" border="0" alt="" /></a>
- <!--{/if}-->
复制代码
[ 本帖最后由 dreamnet 于 2006-11-1 22:31 编辑 ] |