织梦dedecms图集图片每张自定义输出不同样式


如果你的图集图片要在内容页按不同的html输出每一张图片,出了CSS+js能实现,我们也可以用array runphp的方式来让每一张自定义输出

效果

 

修改教程

\include\taglib\productimagelist.lib.php 找到

foreach($images as $row)

{

中间省略…

}

改成

 

$GLOBALS['autoindex'] = 1;
foreach($images as $row)
{
	$row['autoindex'] =  $GLOBALS['autoindex'];
	foreach($ctp->CTags as $tagid=>$ctag)
	{
		if($ctag->GetName()=='array')
		{
			$ctp->Assign($tagid,$row);
		}
		else
		{
			if(isset($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); }
		}
	}
	$revalue .= $ctp->GetResult();
	$GLOBALS['autoindex']++;
}

内容页图集标签

{dede:productimagelist}
	[field:array runphp=yes]
		if(@me['autoindex'] == 1)
		{
			@me = "<strong>{@me['autoindex']} - <img src='{@me['imgsrc']}'></strong>\n";
		}
		elseif(@me['autoindex'] == 2)
		{
			@me = "<p>{@me['autoindex']} - <img src='{@me['imgsrc']}'></p>\n";
		}
		elseif(@me['autoindex'] == 3)
		{
			@me = "<span>{@me['autoindex']} - <img src='{@me['imgsrc']}'></span>\n";
		}
		else
		{
			@me = "<div>{@me['autoindex']} - <img src='{@me['imgsrc']}'></div>\n";
		}
	[/field:array]
{/dede:productimagelist}

 

 

复杂一点的写法

<ul class="tuzs clearfix">
	{dede:productimagelist}
	[field:array runphp=yes]
		if(@me['autoindex'] == 2)
		{
			@me = "<li class='leftlab' style='height:914px'><div class='huise'></div> <img src='{@me['imgsrc']}'> </li>";
		}
		else
		{
			@me = "";
		}
	[/field:array]
	{/dede:productimagelist}
	<li class="rightlab">
	{dede:productimagelist}
		[field:array runphp=yes]
			if(@me['autoindex'] == 3)
			{
				@me = "<div class='rtup' style='height:457px'><div class='huise'></div><img src='{@me['imgsrc']}'> </div>";
			}
			elseif(@me['autoindex'] == 4)
			{
				@me = "<div class='rtdn' style='height:457px'><div class='huise'></div><img src='{@me['imgsrc']}'> </div>";
			}
			else
			{
				@me = "";
			}
		[/field:array]
	{/dede:productimagelist}
	</li>
</ul>