正在读取数据,页面载入中,请稍后...

织梦图集调用标签,支持自定义模型、列表多图展示效果

在上一篇《织梦二次开发,就是这么简单》织梦教程中,小千说过,织梦的二次开发,要会点PHP语言,还有SQL的增、删、改、查、关联表,自定义函数,自定义方法,就是这么的简单。下面,小千给大家举个例子,使用自定义方法,灵活的运用织梦标签,用织梦也能做出你要想要的效果。

写在前面

织梦调用图集标签,在网上,或者是织梦都已经内置了,但是,这个标签,对开发者来说,十分的不太友好。因为这个标签,格局就被限制了,只支持调用当前内容模型,想要调用其它的内容模型,你还得再做一个列表模板,新增一个内容模型,新增一个列表模板,这肯定是十分多余的。闲话少叙,直接上教程。

教程开始

①、打开后台 => 系统设置 => 内容模型管理 => 图集模型 => 更改 => 在基本参数下 => 列表附加字段 => 添加 imgurls 字段

imgurls

织梦列表调用自定义字段,我们都知道,织梦的内容模型,不管是新增的字段,还是现有的字段,你想在列表下调用,肯定是得要在内容模型的列表附加字段中添加自定义字段名的,添加字段名以后,就可以在列表愉快的调用了,但是,调用出来的代码,结果让人不是很满意。

②、打开 /templets/system/channel_article_image.htm 把里面的代码改为

[field:imgsrc/],

对的,没错,这样我们在列表,就能使用 [field:imgurls/] 标签调用图集了,但是,结果还是让人十分不满意,因为只有图片,没有样式的呀,接下来给它来个二次开发。

③、打开 /include/extend.func.php 在它最下面加入代码

function pic($imgurls) {
	$imgurls = rtrim($imgurls,',');
	if($imgurls=='') {
		return '';
		exit();
	}
	$keywords = explode(',', $imgurls);
	$count = count($keywords);
	foreach ($keywords as $keyword) {
		$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
	}
	return '<div class="row justify-content-center py-3">'.$aaabbb.'</div>';
}

完成,上面是调用举例,作为开发者做模板,得要根据自己的需求来修改样式。

调用标签

在 /templets/default/list_image.htm 图集列表模板,标签调用代码如下

[field:imgurls function=pic(@me)/]

调用标签就是这么简单,这个调用标签支持任何图集内容模型,意思就是,不单单是只能调用内容模型ID为2的图集模型哦,只要你想把网站做大,你可以复制一万个图集模型,不需要再新增多个列表模板,而且还都是这个调用标签。

多图展示

啊有人讲,我列表想要一个多图展示,比如:无图、一图、二图、两图、三图、四图、五图、甚至更多的图,我看别人的网站,这种多图效果非常好看,其实,这个织梦也是阔以实现的。在上面的基础上,改第③步的自定义方法即可,列表多图展示参考代码如下

function pic($imgurls) {
	$imgurls = rtrim($imgurls,',');
	if($imgurls=='') {
		return '';
		exit();
	}
	$keywords = explode(',', $imgurls);
	$count = count($keywords);
	if($count>5) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} elseif ($count==5) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} elseif ($count==4) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} elseif ($count==3) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} elseif ($count==2) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} elseif ($count==1) {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	} else {
		foreach ($keywords as $keyword) {
			$aaabbb .= '<img class="img-fluid lazyload" data-original="'.$keyword.'" />';
		}
	}
	return '<div class="row justify-content-center py-3">'.$aaabbb.'</div>';
}

判断imgurls图集字段值,大于5图,等于5图,等于4图,等于3图,等于2图,等于1图,剩下的那个,百分之百是无图的。

调用标签

在 /templets/default/list_image.htm 图集列表模板,标签调用代码如下

[field:imgurls function=pic(@me)/]

多图的调用标签和单图的调用标签是一样的,只是展示效果不一样,模板不一样,需求不一样,但是调用标签,真的是一模一样的,利用织梦图集做多图展示,你把织梦玩转了,真的啥都能开发,没有什么,是自定义方法解决不了的,一个解决不了,那就用两个自定义方法。

本文结束

评论专区

发表评论

评论列表(无评论)