discuz插件的事,我又跑到csdn来问,相信组织的力量!
这个插件呢,是仿贴吧的,在帖子列表显示缩略图,是我很喜欢的一种风格,适用于X3.0,但是为了客户端,我只能用X2.5版本,这个插件在X2.5不工作,无法生成缩略图我就是想改一改代码,让其在X2.5环境下工作,自用,不商用。
在X3.0下,是能生成一个存放缩略图的文件夹,里面存放有缩略图。但是在2.5下,没有发现这个文件夹,所以感觉在build这一步出了问题。
下面贴出thumbbuilder.class.php这个文件的代码,请高手分析一下,为什么没有在data/attachment/下生成tiebalist这个文件夹。
<?phpif(!defined('IN_DISCUZ')) { exit('Access Denied');}if (!class_exists('PhpThumbFactory',false)) require_once('source/plugin/chs_tiebalist/phpthumb/ThumbLib.inc.php');class ThumbBuilder { private $basedir; private $baseurl; public function __construct(){ global $_G; $this->basedir=!$_G['setting']['attachdir'] ? (DISCUZ_ROOT.'data/attachment/'):$_G['setting']['attachdir']; $this->baseurl=!$_G['setting']['attachurl'] ? ('data/attachment/'):$_G['setting']['attachurl']; } private function getCoverPath($tid){ return 'tiebalist/'.substr(md5($tid), 0, 2).'/'.substr(md5($tid), 2, 2).'/'; } public function GetThreadCovers($tid,$aids){ $coverpath=$this->getCoverPath($tid); $fullpath=$this->basedir.$coverpath; $fullurl=$this->baseurl.$coverpath; $images=array(); foreach($aids as $aid){ if (file_exists($fullpath.$aid.'.jpg')) $images[]=array('aid'=>$aid,'thumbfile'=>$fullurl.$aid.'.jpg'); } return $images; } public function CreateThreadCovers($tid,$images,$force=0){ $path=$this->basedir.$this->getCoverPath($tid); dmkdir($path); global $_G; $setting=&$_G['cache']['plugin']['chs_tiebalist']; $thumbheight=$setting['thumbheight']?$setting['thumbheight']:80; $thumbmaxwidth=$setting['thumbmaxwidth']?$setting['thumbmaxwidth']:300; foreach($images as $aid=>$image){ $target=$path.$aid.'.jpg'; if (file_exists($target)&&(!$force)) continue; try { $thumb = PhpThumbFactory::create($image,array('resizeUp'=>true)); $dimensions=$thumb->getCurrentDimensions(); $newwidth=$thumbheight*$dimensions['width']/$dimensions['height']; if ($newwidth>$thumbmaxwidth) { $thumb->adaptiveResize($thumbmaxwidth,$thumbheight); }else { $thumb->resize(0,$thumbheight);//封面不限定宽度 } $thumb->save($target); }catch(Exception $oEx){//捕获生成缩略图可能抛出的异常,防止中断 writelog('tiebalistlog',$oEx->getMessage()); continue; } } if ($force) { $thumbfiles=$this->getfiles($path,'jpg'); $aids=array_keys($images); foreach($thumbfiles as $filename){ $aid=intval(substr($filename,0,strpos($filename,'.'))); if (!in_array($aid,$aids)) unlink($path.$filename); } } } private function getfiles($dir,$mask=''){ $fileArray=array(); if (false != ($handle = opendir ($dir))) { while (false!==($file=readdir($handle))){ if ($file == '.' || $file == '..') continue; if (empty($mask)) $fileArray[]=$file; else if (substr(strrchr($file, '.'), 1)==$mask) $fileArray[]=$file; } } return $fileArray; }}?>
回复讨论(解决方案)
buildthumb.inc.php内的内容,好像也有用处呢
<?phpif(!defined('IN_DISCUZ')) { exit('Access Denied');}class plugin_chs_tiebalist { function common() {}}class plugin_chs_tiebalist_forum extends plugin_chs_tiebalist { function forumdisplay_thread_subject_output(){ global $_G; $setting=&$_G['cache']['plugin']['chs_tiebalist']; if (!$setting['enabled']) return; $fid = intval($_G['fid']); $forumselected=unserialize($setting['forumselected']); if(!in_array($fid,$forumselected)) return; if ($_G['forum']['picstyle'] == 0||$_G['cookie']['forumdefstyle']==1){ global $_G; $threadlist = array(); $threadlist = $_G['forum_threadlist']; $tiebalist = array(); $messagelength=$setting['messagelength']?$setting['messagelength']:100; $picturenum=$setting['$picturenum']?$setting['$picturenum']:3; include libfile('function/post'); require_once('thumbbuilder.class.php'); $oTB=new ThumbBuilder(); foreach($threadlist as $key => $value){ $position=($value['special']==2)?2:1;//商品主题的首帖在第二楼,回复从第3楼开始 $firstpost=C::t('forum_post')->fetch_all_by_tid_position('tid:'.$value['tid'],$value['tid'],$position); if (count($firstpost)>0&&$firstpost[0]['invisible']>=0){ $post=&$firstpost[0]; $message=messagecutstr($post['message'],$messagelength); $tiebalist[$key] = '<p>'.$message.'</p>'; $attachs=C::t('forum_attachment_n')->fetch_all_by_id('pid:'.$post['pid'],'pid',$post['pid'],false,true,false,false,$picturenum); $aids=array_keys($attachs); if ($aids){ $imagelist=$oTB->GetThreadCovers($value['tid'],$aids); if (count($imagelist)>0) { $tiebalist[$key].='<ul id="thumblist_'.$value['tid'].'" class="thumblist cl">'; foreach($imagelist as $ii=>$image){ $attach=$attachs[$image['aid']]; $forumimg=($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$attach['attachment']; $tiebalist[$key].='<li data="'.$forumimg.'" onclick="showpicture('.$value['tid'].','.$ii.');return false;"><img src="/static/imghw/default1.png" data-src="'.$image['thumbfile'].'" class="lazy" .$image['thumbfile'].'"/ alt="discuz插件的事,我又跑到csdn来问,相信组织的力量!" ></li>'; } $tiebalist[$key].='</ul>'; $tiebalist[$key].= '<div id="picturebox_'.$value['tid'].'" class="picturedisplay" style="max-width:90%"> <div class="picturecontrol"> <a class="icon_close" onclick="closepicture('.$value['tid'].');return false;">收起</a> <span>|</span> <a class="icon_viewpost" href="forum.php?mod=viewthread&tid='.$value['tid'].'&extra=page%3D1">查看帖子</a> <span>|</span> <a class="icon_turnleft" onclick="turnimg('.$value['tid'].',1);return false;">左转</a> <span>|</span> <a class="icon_turnright" onclick="turnimg('.$value['tid'].',0);return false;">右转</a> </div> <div class="picturewrap" > <a onclick="closepicture('.$value['tid'].');return false;"><img class="picture lazy" src="/static/imghw/default1.png" data-src="" / alt="discuz插件的事,我又跑到csdn来问,相信组织的力量!" ></a> <div class=" /></a> <div ></div> <div class="gonext"></div> </div> </div>'; } } } } return $tiebalist; } } function forumdisplay_threadlist_bottom() { global $_G; $setting=&$_G['cache']['plugin']['chs_tiebalist']; if (!$setting['enabled']) return; $fid = intval($_G['fid']); $forumselected=unserialize($setting['forumselected']); if(!in_array($fid,$forumselected)) return; $echo = '<link rel="stylesheet" type="text/css" href="source/plugin/chs_tiebalist/template/css/tiebalist.css" />'; $echo .= '<script src="source/plugin/chs_tiebalist/template/js/tiebalist.js" type="text/javascript"></script>'; $picturemaxwidth=$setting['picturemaxwidth']?$setting['picturemaxwidth']:600; $echo .='<script type="text/javascript">var picturemaxwidth='.$picturemaxwidth.';</script>'; return $echo; } function post_chs_tiebalist_message($params) { global $_G, $tid, $pid, $modthread, $isfirstpost; $setting=&$_G['cache']['plugin']['chs_tiebalist']; if (!$setting['enabled']) return; $fid = intval($_G['fid']); $forumselected=unserialize($setting['forumselected']); if(!in_array($fid,$forumselected)) return; list($msg, $url_forward, $values, $extraparam) = $params['param']; if (($msg == 'post_newthread_succeed')||($msg == 'post_newthread_mod_succeed')) { $pid = $modthread->pid; $this->create_covers($pid,$tid); dshowmessage($msg, $url_forward, $values, $extraparam); }else if (($msg == 'post_edit_succeed')&&$isfirstpost) { $tid=$_G['tid']; $this->create_covers($pid,$tid); dshowmessage($msg, $url_forward, $values, $extraparam); } } private function create_covers($pid,$tid){ global $_G; $setting=&$_G['cache']['plugin']['chs_tiebalist']; $picturenum=$setting['$picturenum']?$setting['$picturenum']:3; //获取帖子的图片 $attachs=C::t('forum_attachment_n')->fetch_all_by_id('pid:'.$pid,'pid',$pid,false,true,false,false,$picturenum); $images=array(); foreach($attachs as $attach){ $images[$attach['aid']]=($attach['remote'] ? $_G['setting']['ftp']['attachdir'] : $_G['setting']['attachdir']).'forum/'.$attach['attachment']; } if ($images){ require_once("thumbbuilder.class.php"); $oTB=new ThumbBuilder(); $oTB->CreateThreadCovers($tid,$images); } }}?>
这个你找原插件作者去瞅瞅吧!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PyCharm은 개발자가 코드를 보다 효율적으로 작성할 수 있도록 다양한 기능과 도구를 제공하는 강력하고 인기 있는 Python 통합 개발 환경(IDE)입니다. PyCharm의 플러그인 메커니즘은 기능을 확장하기 위한 강력한 도구입니다. 다양한 플러그인을 설치하면 PyCharm에 다양한 기능과 사용자 정의 기능을 추가할 수 있습니다. 따라서 PyCharm을 처음 접하는 사람이 플러그인을 이해하고 능숙하게 설치하는 것이 중요합니다. 이 문서에서는 PyCharm 플러그인의 전체 설치에 대해 자세히 소개합니다.
![Illustrator에서 플러그인 로드 중 오류 발생 [수정됨]](https://img.php.cn/upload/article/000/465/014/170831522770626.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Adobe Illustrator를 시작할 때 플러그인 로딩 오류에 대한 메시지가 팝업됩니까? 일부 Illustrator 사용자는 응용 프로그램을 열 때 이 오류가 발생했습니다. 메시지 뒤에는 문제가 있는 플러그인 목록이 표시됩니다. 이 오류 메시지는 설치된 플러그인에 문제가 있음을 나타내지만 손상된 Visual C++ DLL 파일이나 손상된 기본 설정 파일과 같은 다른 이유로 인해 발생할 수도 있습니다. 이 오류가 발생하면 이 문서에서 문제 해결 방법을 안내하므로 아래 내용을 계속 읽어보세요. Illustrator에서 플러그인 로드 오류 Adobe Illustrator를 시작하려고 할 때 "플러그인 로드 오류" 오류 메시지가 표시되면 다음을 사용할 수 있습니다. 관리자로

Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? 일반적인 상황에서 Chrome 플러그인 확장의 기본 설치 디렉터리는 다음과 같습니다. 1. windowsxp에서 Chrome 플러그인의 기본 설치 디렉터리 위치: C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Windows7의 Default\Extensions2.chrome 플러그인의 기본 설치 디렉터리 위치: C:\Users\username\AppData\Local\Google\Chrome\User

사용자가 Edge 브라우저를 사용할 때 더 많은 요구 사항을 충족하기 위해 일부 플러그인을 추가할 수 있습니다. 그런데 플러그인을 추가하면 해당 플러그인이 지원되지 않는다고 표시됩니다. 이 문제를 해결하는 방법은 무엇입니까? 오늘은 에디터가 세 가지 해결 방법을 알려드리겠습니다. 방법 1: 다른 브라우저를 사용해 보세요. 방법 2: 브라우저의 Flash Player가 오래되었거나 누락되어 플러그인이 지원되지 않을 수 있습니다. 공식 웹사이트에서 최신 버전을 다운로드할 수 있습니다. 방법 3: "Ctrl+Shift+Delete" 키를 동시에 누르세요. "데이터 지우기"를 클릭하고 브라우저를 다시 엽니다.

PyCharm Community Edition은 충분한 플러그인을 지원합니까? 구체적인 코드 예제가 필요 소프트웨어 개발 분야에서 Python 언어가 점점 더 널리 사용됨에 따라 전문적인 Python 통합 개발 환경(IDE)인 PyCharm이 개발자들에게 선호되고 있습니다. PyCharm은 Professional 버전과 Community 버전의 두 가지 버전으로 나누어집니다. Community 버전은 무료로 제공되지만 Professional 버전에 비해 플러그인 지원이 제한됩니다. 그렇다면 문제는 PyCharm Community Edition이 충분한 플러그인을 지원하느냐는 것입니다. 이 기사에서는 특정 코드 예제를 사용하여

WordPress 플러그인을 사용하여 즉각적인 위치 기능을 구현하는 방법 모바일 장치의 인기로 인해 점점 더 많은 웹사이트가 위치정보 기반 서비스를 제공하기 시작했습니다. WordPress 웹사이트에서는 플러그인을 사용하여 즉각적인 위치 확인 기능을 구현하고 방문자에게 지리적 위치와 관련된 서비스를 제공할 수 있습니다. 1. 올바른 플러그인을 선택하세요. WordPress 플러그인 라이브러리에는 위치정보 서비스를 제공하는 플러그인이 많이 있습니다. 필요와 요구 사항에 따라 올바른 플러그인을 선택하는 것이 즉각적인 위치 지정 기능을 달성하는 열쇠입니다. 다음은 몇 가지입니다.

WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법 WeChat 미니 프로그램의 인기와 인기로 인해 점점 더 많은 웹사이트와 애플리케이션이 WeChat 미니 프로그램과의 통합을 고려하기 시작했습니다. 콘텐츠 관리 시스템으로 WordPress를 사용하는 웹사이트의 경우 WeChat 애플릿 기능을 추가하면 사용자에게 더욱 편리한 액세스 경험과 더 많은 기능적 선택권을 제공할 수 있습니다. 이 기사에서는 WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법을 소개합니다. 1단계: WeChat 미니 프로그램 계정을 등록하세요. 먼저 WeChat 앱을 열어야 합니다.

WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법 1. 소개 웹 사이트와 블로그에서 비디오를 적용하는 것이 점점 더 보편화되고 있습니다. 고품질의 사용자 경험을 제공하기 위해 WordPress 플러그인을 사용하여 비디오 재생 기능을 구현할 수 있습니다. 이 기사에서는 WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법을 소개하고 코드 예제를 제공합니다. 2. 플러그인 선택 WordPress에는 선택할 수 있는 다양한 비디오 재생 플러그인이 있습니다. 플러그인을 선택할 때 다음 측면을 고려해야 합니다. 호환성: 플러그인이 맞는지 확인하세요.
