最近使用DEDE,系統(tǒng)在FreeBSD6下,那個(gè)自動(dòng)提取第一張圖為縮略圖的功能無(wú)法使用.
網(wǎng)上找了一天時(shí)間,原來(lái)是DEDE的BUG,官方壇子里還沒有解決辦法,
自己動(dòng)手,找辦法
自動(dòng)縮略圖沒有生成(_lit文件),這個(gè)是因?yàn)閭鬟f給GetDDImage函數(shù)的目錄名不正確,根本原因是因?yàn)樘崛?body中的圖地址時(shí)給$cfg_medias_dir加入了轉(zhuǎn)義字符
下面把解決辦法說(shuō)明如下:
修改/dede 目錄下的article_add_action.php 和article_eidt_action.php 兩個(gè)文件,在文件中找到//自動(dòng)獲取縮略圖 這一段代碼.改為以下部分,另外原程序中 自動(dòng)取的是最后一張圖,我改了一下,自動(dòng)取第一張/最后一張都可以.注釋掉不需要的那個(gè)就行,
代碼如下:
//更正的代碼如下:已在FreeBSD/Apache2.2.4/PHP5.2.3測(cè)試通過
//自動(dòng)獲取縮略圖
if($autolitpic==1 && $litpic==''){
//自動(dòng)從第一張圖生成
$picname = preg_replace("/.+?".str_replace('/','\/',$cfg_medias_dir)."(.+?)( |\"|').*$/is",$cfg_medias_dir."$1",$body);
//自動(dòng)從最后一張圖生成
//$picname = preg_replace("/.+?".str_replace('/','\/',$cfg_medias_dir)."(.*)( |\"|').*$/isU",$cfg_medias_dir."$1",$body);
if(eregi("\.(jpg|gif|png)$",$picname)){
if(ereg("_lit\.",$picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst',$picname,0);
}
}