在用織夢dedecms圖集模型建立圖片站的時候發(fā)現(xiàn){dede:productimagelist}標簽調用不出來圖片的縮略圖,可是www.lol9.cn站長就是想要調用每張圖片的縮略圖,這該如何實現(xiàn)呢?
經過研究站長發(fā)現(xiàn)織夢dedecms有給每個圖片生成縮略圖的機制 ,只要發(fā)布的時候把顯示方式選擇成多行多列即可
請看相應源代碼:
打開 \dede\album_add.php 文件,查看如下代碼紅色部分:
/*---------------------
function _getformupload()
通過swfupload正常上傳的圖片
---------------------*/
if(is_array($_SESSION['bigfile_info']))
{
foreach($_SESSION['bigfile_info'] as $k=>$v)
{
$truefile = $cfg_basedir.$v;
if(strlen($v)<2 || !file_exists($truefile)) continue;
$info = '';
$imginfos = GetImageSize($truefile, $info);
$litpicname = $pagestyle > 2 ? GetImageMapDD($v, $cfg_ddimg_width) : '';
if(!$hasone && $ddisfirst==1 && $litpic=='')
{
$litpic = empty($litpicname) ? GetImageMapDD($v, $cfg_ddimg_width) : $litpicname;
$hasone = TRUE;
}
$imginfo = !empty(${'picinfook'.$k}) ? ${'picinfook'.$k} : '';
$imgurls .= "{dede:img ddimg='$v' text='$imginfo' width='".$imginfos[0]."' height='".$imginfos[1]."'} $v {/dede:img}\r\n";
}
}
$imgurls = addslashes($imgurls);
$pagestyle就是發(fā)布圖集時選擇的單頁多圖樣式、幻燈片樣式、多縮略圖樣式這三種
在發(fā)布圖集時選擇第三個,多縮略圖樣式即可,行數和列數如果是自己的模板的話不必理會,只要設定縮略圖寬度到合適的數值就可以了
如果你發(fā)布的時候沒選,可還想要生成縮略圖也很簡單,只需更改已發(fā)布的圖集,選中下多縮略圖樣式就行了
這樣每個圖片的縮略圖就生成出來了,可是怎么才能調用出來呢?
先看一下數據庫儲存的圖片
再看上面代碼中的藍色部分,根據判斷$ddimg就是縮略圖了
打開 /include/taglib/productimagelist.lib.php 文件
發(fā)現(xiàn)它和其他標簽不一樣的地方,他是讀取一個標簽的值和屬性來顯示在另外一個標簽中的機制
那么就在它處理標簽的地方加一個新的讀取屬性 ,只需要加如下代碼中紅色部分即可完成這個功能
if($ctag->GetName()=="img")
{
$row = array();
$row['imgsrc'] = trim($ctag->GetInnerText());
$row['text'] = $ctag->GetAtt('text');
$row['litpic'] =$ctag->GetAtt('ddimg');
$images[] = $row;
}
這樣[field:litpic/]就可以顯示出圖片所對應的縮略圖了
版權聲明: 本站資源均來自互聯(lián)網或會員發(fā)布,如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內刪除!謝謝!