最近,养成了一种使用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多张缩略图功能。