1. 程式人生 > 其它 >織夢圖集圖片集標籤呼叫圖片+數字編號自增+第一個高亮+自定義limit

織夢圖集圖片集標籤呼叫圖片+數字編號自增+第一個高亮+自定義limit

前臺效果

伸手黨直接下載覆蓋檔案即可使用 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何處藏。 縱使上線又怎樣,朝令改,夕斷腸。