織夢圖集圖片集標籤呼叫圖片+數字編號自增+第一個高亮+自定義limit
阿新 • • 發佈:2021-09-13
前臺效果
伸手黨直接下載覆蓋檔案即可使用 gbk/utf8
本地下載
網盤下載
前端程式碼
<div id=\"spec-n1\"><img src=\"/images/1.jpg\"></div> <div id=\"spec-n5\"> <div id=\"spec-list\"> <ul > <li id=\"img0\" onmouseover=\"thisimg(0)\" ><img alt=\"產品註釋1\" src=\"/images/1.jpg\"></li> <li id=\"img1\" onmouseover=\"thisimg(1)\"><img alt=\"產品註釋2\" src=\"/images/2.jpg\"></li> <li id=\"img2\" onmouseover=\"thisimg(2)\"><img alt=\"產品註釋3\" src=\"/images/3.jpg\"></li> <li id=\"img3\" onmouseover=\"thisimg(3)\"><img alt=\"產品註釋4\" src=\"/images/4.jpg\"></li> <li id=\"img4\" onmouseover=\"thisimg(4)\"><img alt=\"產品註釋5\" src=\"/images/5.jpg\"></li> </ul> </div> </div>
1、從上面前端程式碼我們可以看到預設顯示圖片集第1個圖片,我們可以用{dede:field name=imgurls row=1}{/dede:field}
圖集選項-表現方式,選擇幻燈片樣式,不然上面的 {dede:field name=imgurls row=1} 無效
2、下面的小圖每個li裡面都有不同的自增id和自增thisimg,而且第一個有高亮的,所以要先讓織夢程式的圖集標籤能輸出自增數字 0 1 2 3 …
開啟 /include/taglib/productimagelist.lib.php 檔案 找到
$ctp->LoadSource($innerText);
在它下面加入
$GLOBALS[\'autoindex\'] = 0;
繼續找到
$revalue .= $ctp->GetResult();
在它下面加入
$GLOBALS[\'autoindex\']++;
修改完成後,上面的模板前端程式碼就這樣寫標籤嵌套了
<div id=\"spec-n1\"><img src=\"{dede:field name=imgurls alt=圖片輸出區 row=1}[field:imgsrc/]{/dede:field}\"></div> <div id=\"spec-n5\"> <div id=\"spec-list\"> <ul > {dede:productimagelist} <li id=\"img[field:global name=autoindex/]\" onmouseover=\"thisimg([field:global name=autoindex/])\"[field:global name=autoindex runphp=yes](@me==0)? @me=\' \':@me=\'\';[/field:global]><img alt=\"[field:text/]\" src=\"[field:imgsrc/]\"></li> {/dede:productimagelist} </ul> </div> </div>
自定義limit指定幾個、偏移幾個
要使用limit自定義輸出偏移的圖集圖片,必須要參考上面的第2步加入$GLOBALS[\’autoindex\’]
然後繼續在 /include/taglib/productimagelist.lib.php 檔案 找到
$attlist=\"desclen|80\";
改成
$attlist=\"desclen|80,limit|\";
如圖
繼續找到
foreach($images as $row)
在它的前面加入
$limit = trim(preg_replace(\'#limit#is\',\'\',$limit));
if($limit!=\'\')
{
if(preg_match(\'#,#\', $limit))
{
$limitarr = explode(\",\", $limit);
$lmt = $limitarr[0];
$num = $limitarr[1];
}
else
{
$lmt = 0;
$num = $limit;
}
$images = array_slice($images,$lmt);
}
繼續找到
foreach($ctp->CTags as $tagid=>$ctag)
在它上面加入
if($limit!=\'\' && $GLOBALS[\'autoindex\'] == $num) break;
如圖
圖集內容頁模板標籤寫法
<h2>預設全部</h2>
{dede:productimagelist}
[field:imgsrc/]<br />
{/dede:productimagelist}
<h2>指定幾個</h2>
{dede:productimagelist limit=\'2\'}
[field:imgsrc/]<br />
{/dede:productimagelist}
<h2>偏移幾個</h2>
{dede:productimagelist limit=\'1,4\'}
[field:imgsrc/]<br />
{/dede:productimagelist}
顯示效果如圖
千行程式碼,Bug何處藏。 縱使上線又怎樣,朝令改,夕斷腸。