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