織夢的縮略圖變形的問題一直為大家所詬病,在縮略圖問題的處理上,織夢程序確實做的不大好??棄鬌edeCMS對縮略圖的處理方式是按比例對正文的第一張圖片進(jìn)行縮放的,如果圖片尺寸與縮略圖的尺寸不符合,就會造成圖片擠壓或者拉伸從而失真。有一種解決的辦法是采用裁切的方式,按固定的比例對圖片剪裁,來解決縮略圖失真的問題,這種方法可以去看織夢DedeCms5.7縮略圖變形解決方法一文。
今天主要是整理下織夢DedeCMS調(diào)取文章正文圖片的方法,雖然在織夢DedeCms批量提取第一張圖片為縮略圖一文中也談到了文章正文圖片的調(diào)用,但是哪個是重新生成縮略圖的。今天的這個方法則是調(diào)用正文中的第一張圖片,以便有足夠大、足夠清新的圖來進(jìn)行一些特效、幻燈等的效果處理。實現(xiàn)的方法可以使用織夢的SQL標(biāo)簽,也可以自定義函數(shù)來進(jìn)行處理。原理是織夢文章的圖片路徑都是存儲在dede_uploads表(默認(rèn)前綴)里面的,具體的SQL標(biāo)簽調(diào)用可以參考下織夢DedeCMS模板標(biāo)簽sql調(diào)用代碼大全一文。
下面主要說一下采用自定義函數(shù)實現(xiàn)調(diào)用文章正文內(nèi)容圖片的方法。在include目錄下的helpers文件夾中的extend.helper.php文件中添加如下的函數(shù):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/**
* 多縮略圖插件
*
* @return string
*/
if ( ! function_exists( 'simgs' ))
{
function simgs( $aid ){
global $dsql ;
$arcRow = GetOneArchive( $aid );
$docdir = $arcRow [typedir];
$docurl = str_replace ( '{cmspath}' , 'http://www.noniu.com' , "$docdir" );
$sql = "SELECT url FROM dede_uploads WHERE arcid='$aid' ORDER BY aid DESC LIMIT 3" ;
$dsql ->SetQuery( $sql );
$dsql ->Execute();
while ( $row = $dsql ->GetArray()) {
$spics .= "<a href=" ".$docurl." / $arcRow [aid].html "><img alt=" $arcRow [title] " src=" $row [url] "></a>" ;
}
return $spics ;
}
}
|
注意把修改為自己的域名。在首頁或者頻道頁面的模板中使用如下的調(diào)用方式調(diào)用文章正文圖片。
[field:id function="simgs(@me)"/]
這個函數(shù)默認(rèn)是調(diào)用三張正文圖片,可以自己根據(jù)情況調(diào)整數(shù)量和顯示的樣式等信息。這種調(diào)用的方式有一些缺點(diǎn),就是如果圖片的路徑?jīng)]有保存到dede_uploads表中,就調(diào)用不出來,有些采集軟件發(fā)布的文檔就會出現(xiàn)這種情況。更好的方式是直接調(diào)用文檔內(nèi)容,然后正則匹配文檔中的圖片地址,這種方法在以后的文章中再說。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 織夢DedeCMS如何調(diào)取文章正文圖片