在上一篇《织梦二次开发,就是这么简单》织梦教程中,小千说过,织梦的二次开发,要会点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)/]
多图的调用标签和单图的调用标签是一样的,只是展示效果不一样,模板不一样,需求不一样,但是调用标签,真的是一模一样的,利用织梦图集做多图展示,你把织梦玩转了,真的啥都能开发,没有什么,是自定义方法解决不了的,一个解决不了,那就用两个自定义方法。
本文结束
评论专区
发表评论
评论列表(无评论)