最近,养成了一种使用APP浏览时事政事信息的习惯。在浏览过程中发现,有些页面会根据内容的不同,展示三张、单张或者无缩略图的情况。这种设计常见于今日头条APP、网易新闻APP等手机端应用。
接下来,我们将结合DedeCMS模板,分享一个适合PHP初学者的教程,帮助大家实现类似功能。
本教程主要运用的是DedeCMS中的array标签。如果你对这个标签的基础用法还不太熟悉,可以参考相关文章《dedecms用array调用多个自定义字段并判断》。
通常情况下,列表页的标签代码如下:
{dede:list}
[field:array runphp='yes']
php代码块;
[/field:array]
{/dede:list}
为了实现多张缩略图的功能,我们需要增加自定义字段。
具体步骤如下:
依次打开:后台 -> 频道模型 -> 内容模型管理 -> 普通文章 -> 添加新字段。
这里我们新增两个字段:pic1 和 pic2,数据类型都设置为图片无格式。加上默认的缩略图字段,一共是三张图片。
以下是完整的代码示例:
{dede:arclist addfields='pic1,pic2' channelid='1'}
[field:array runphp='yes']
$depic = '/images/defaultpic.gif'; //为减少重复代码,把模板放到变量内。
//模板1:只调用标题
$con1 = '
' . @me['title'] . '
';
//模板2:调用标题,默认缩略图
$con2 = '
' . @me['title'] . '
';
//模板3:调用标题,默认缩略图,pic1,pic2
$con3 = '
' . @me['title'] . '
';
if(@me['litpic'] != $depic && @me['pic1'] !='' && @me['pic2'] !='') @me = $con3 ; //如果三种都不为空,则输出全部值
elseif(@me['litpic'] == $depic && @me['pic1'] =='' && @me['pic2'] == '') @me = $con1 ; //如果三种都为空,则输出标题
elseif(@me['pic1'] =='' || @me['pic2'] == '') @me = $con2; //如果pic1,pic2其中一个为空,则输出标题,默认缩略图
else @me = $con1; //只输出标题
[/field:array]
{/dede:arclist}
以上代码中,我们通过条件判断实现了不同情况下的展示效果:
- 当三张图片都存在时,显示完整的内容(标题+三张图片)。
- 当所有图片都不存在时,仅显示标题。
- 当部分图片缺失时,显示标题和存在的图片。
对于初学者来说,尽量保持代码简洁是非常重要的。过多而重复的代码不仅难以维护,还容易出错。例如,单引号(')、双引号(")的正确使用,以及字符与变量之间的连接符号(.)等都需要特别注意。
最后,具体的样式可以根据个人需求进行调整。希望这篇教程能够帮助大家更好地理解和使用DedeCMS多张缩略图功能。