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); } }}?>
这个你找原插件作者去瞅瞅吧!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PyCharm ist eine leistungsstarke und beliebte integrierte Entwicklungsumgebung (IDE) für Python, die eine Fülle von Funktionen und Tools bereitstellt, damit Entwickler Code effizienter schreiben können. Der Plug-In-Mechanismus von PyCharm ist ein leistungsstarkes Tool zur Erweiterung seiner Funktionen. Durch die Installation verschiedener Plug-Ins können PyCharm um verschiedene Funktionen und benutzerdefinierte Funktionen erweitert werden. Daher ist es für PyCharm-Neulinge von entscheidender Bedeutung, die Installation von Plug-Ins zu verstehen und zu beherrschen. In diesem Artikel erhalten Sie eine detaillierte Einführung in die vollständige Installation des PyCharm-Plug-Ins.
![Fehler beim Laden des Plugins in Illustrator [Behoben]](https://img.php.cn/upload/article/000/465/014/170831522770626.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Erscheint beim Starten von Adobe Illustrator eine Meldung über einen Fehler beim Laden des Plug-Ins? Bei einigen Illustrator-Benutzern ist dieser Fehler beim Öffnen der Anwendung aufgetreten. Der Meldung folgt eine Liste problematischer Plugins. Diese Fehlermeldung weist darauf hin, dass ein Problem mit dem installierten Plug-In vorliegt, es kann jedoch auch andere Gründe haben, beispielsweise eine beschädigte Visual C++-DLL-Datei oder eine beschädigte Einstellungsdatei. Wenn dieser Fehler auftritt, werden wir Sie in diesem Artikel bei der Behebung des Problems unterstützen. Lesen Sie daher weiter unten weiter. Fehler beim Laden des Plug-Ins in Illustrator Wenn Sie beim Versuch, Adobe Illustrator zu starten, die Fehlermeldung „Fehler beim Laden des Plug-Ins“ erhalten, können Sie Folgendes verwenden: Als Administrator

Was ist das Installationsverzeichnis der Chrome-Plug-in-Erweiterung? Unter normalen Umständen lautet das Standardinstallationsverzeichnis von Chrome-Plug-In-Erweiterungen wie folgt: 1. Der Standard-Installationsverzeichnis-Speicherort von Chrome-Plug-Ins in Windows XP: C:\DocumentsandSettings\Benutzername\LocalSettings\ApplicationData\Google\Chrome\UserData\ Default\Extensions2. Chrome in Windows7 Der Standardinstallationsverzeichnisspeicherort des Plug-Ins: C:\Benutzer\Benutzername\AppData\Local\Google\Chrome\User

Wenn Benutzer den Edge-Browser verwenden, fügen sie möglicherweise einige Plug-Ins hinzu, um weitere Anforderungen zu erfüllen. Beim Hinzufügen eines Plug-Ins wird jedoch angezeigt, dass dieses Plug-In nicht unterstützt wird. Heute stellt Ihnen der Herausgeber drei Lösungen vor. Methode 1: Versuchen Sie es mit einem anderen Browser. Methode 2: Der Flash Player im Browser ist möglicherweise veraltet oder fehlt, sodass das Plug-in nicht unterstützt wird. Sie können die neueste Version von der offiziellen Website herunterladen. Methode 3: Drücken Sie gleichzeitig die Tasten „Strg+Umschalt+Entf“. Klicken Sie auf „Daten löschen“ und öffnen Sie den Browser erneut.

So nutzen Sie WordPress-Plug-Ins, um eine sofortige Standortfunktion zu erreichen. Mit der Beliebtheit mobiler Geräte beginnen immer mehr Websites, geolokalisierungsbasierte Dienste anzubieten. Auf WordPress-Websites können wir Plug-ins verwenden, um Funktionen zur sofortigen Positionierung zu implementieren und Besuchern Dienste im Zusammenhang mit ihrem geografischen Standort anzubieten. 1. Wählen Sie das richtige Plug-in. In der WordPress-Plug-in-Bibliothek stehen viele Plug-ins zur Auswahl. Je nach Bedarf und Anforderungen ist die Auswahl des richtigen Plug-Ins der Schlüssel zur sofortigen Positionierungsfunktionalität. Hier sind einige

So fügen Sie WeChat Mini-Programmfunktionen zu WordPress-Plugins hinzu. Mit der Beliebtheit und Beliebtheit von WeChat Mini-Programmen beginnen immer mehr Websites und Anwendungen darüber nachzudenken, sie in WeChat Mini-Programme zu integrieren. Für Websites, die WordPress als Content-Management-System verwenden, kann das Hinzufügen der WeChat-Applet-Funktion den Benutzern ein komfortableres Zugriffserlebnis und mehr funktionale Auswahlmöglichkeiten bieten. In diesem Artikel erfahren Sie, wie Sie die Funktionalität des WeChat-Miniprogramms zum WordPress-Plug-in hinzufügen. Schritt 1: Registrieren Sie ein WeChat-Miniprogrammkonto. Zuerst müssen Sie die WeChat-App öffnen

Unterstützt PyCharm Community Edition genügend Plugins? Benötigen Sie spezifische Codebeispiele Da die Python-Sprache im Bereich der Softwareentwicklung immer häufiger verwendet wird, wird PyCharm als professionelle integrierte Python-Entwicklungsumgebung (IDE) von Entwicklern bevorzugt. PyCharm ist in zwei Versionen unterteilt: die professionelle Version und die Community-Version. Die Community-Version wird kostenlos bereitgestellt, die Plug-in-Unterstützung ist jedoch im Vergleich zur professionellen Version eingeschränkt. Die Frage ist also: Unterstützt die PyCharm Community Edition genügend Plug-Ins? In diesem Artikel werden spezifische Codebeispiele verwendet

So verwenden Sie das WordPress-Plugin zur Implementierung der Videowiedergabefunktion 1. Einführung Die Verwendung von Videos auf Websites und Blogs wird immer häufiger. Um ein qualitativ hochwertiges Benutzererlebnis zu bieten, können wir WordPress-Plugins verwenden, um Videowiedergabefunktionen zu implementieren. In diesem Artikel wird die Verwendung von WordPress-Plugins zur Implementierung von Videowiedergabefunktionen vorgestellt und Codebeispiele bereitgestellt. 2. Plug-Ins auswählen WordPress bietet viele Plug-Ins für die Videowiedergabe zur Auswahl. Bei der Auswahl eines Plug-Ins müssen wir folgende Aspekte berücksichtigen: Kompatibilität: Stellen Sie sicher, dass das Plug-In vorhanden ist
