在用織夢dedecms圖集模型建立美女圖片站的時候發(fā)現(xiàn){dede:productimagelist}標(biāo)簽調(diào)用不出來圖片的縮略圖,可是跟版網(wǎng)就是想要調(diào)用每張圖片的縮略圖,這該如何實(shí)現(xiàn)呢?
經(jīng)過研究跟版網(wǎng)發(fā)現(xiàn)織夢dedecms有給每個圖片生成縮略圖的機(jī)制 ,只要發(fā)布的時候把顯示方式選擇成多行多列即可
請看相應(yīng)源代碼:
打開
dedealbum_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 ? 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'} $v {/dede:img}rn";
}
}
$imgurls = addslashes($imgurls);
$pagestyle就是發(fā)布圖集時選擇的單頁多圖樣式、幻燈片樣式、多縮略圖樣式這三種
在發(fā)布圖集時選擇第三個,多縮略圖樣式即可,行數(shù)和列數(shù)如果是自己的模板的話不必理會,只要設(shè)定縮略圖寬度到合適的數(shù)值就可以了
如果你發(fā)布的時候沒選,可還想要生成縮略圖也很簡單,只需更改已發(fā)布的圖集,選中下多縮略圖樣式就行了
這樣每個圖片的縮略圖就生成出來了,可是怎么才能調(diào)用出來呢?
先看一下數(shù)據(jù)庫儲存的圖片
再看上面代碼中的
藍(lán)色部分,根據(jù)判斷$ddimg就是縮略圖了
打開
/include/taglib/productimagelist.lib.php文件
發(fā)現(xiàn)它和其他標(biāo)簽不一樣的地方,他是讀取一個標(biāo)簽的值和屬性來顯示在另外一個標(biāo)簽中的機(jī)制
那么就在它處理標(biāo)簽的地方加一個新的讀取屬性 ,只需要加如下代碼中
紅色部分即可完成這個功能
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/]就可以顯示出圖片所對應(yīng)的縮略圖了