单纯的php标签中是无法获取其他字段的,得利用[field:array runphp='yes']@me['title']...等等[/field:array]再利用全局变量$GLOBLAS['autoindex']获取当前的索引值加以判断,并输出不同的样式,如下(注意是在列表页中):
主要是利用array 和php配合获取到文章中的前面4个图片,然后再代培autoindex实现不同的样式调用,适用于列表
<!-- 列表 -->
<ul id="data-list" class="hot-news-list clearfix" > {dede:arclist flag="h" row="30" addfields='body' titlelen="24" infolen="110" channelid='1'} [field:array runphp='yes']//获取body前4张图片 如果不足4张就用缩略图代替 $patten='/<img.*src=[\'|\"]?(.*?)[\'|\"]\s/i';preg_match_all($patten,@me['body'],$res);$imgList=$res[1];$len=count($imgList); if($len<4){$imgList=array_pad($imgList, 4, 'http://www.xhcss.com/images/defaultpic.gif');//终于可以} /* if($len<4){for($i=$len;$i<=(4-$len);$i++){ //$imgList[$i]=@me['litpic']; 不行 // array_push($imgList,'默认图片');也不行 $imgList[$i]='默认图片';//目测是这样的写法不支持 }} */ $title=@me['title']; $litpic=@me['litpic']; $arcurl=@me['arcurl']; $pubdate=date('Y-m-d',@me['pubdate']); @me=($GLOBALS['autoindex']%2)===0?"<li class='hot-news-list-detaile hot-news' > <h6>$title</h6><a href='{$arcurl}'> <ul><li> <img src='{$imgList[0]}' class='hot-news-list-img'></li> <li> <img src='{$imgList[1]}' class='hot-news-list-img'></li> <li> <img src='{$imgList[2]}' class='hot-news-list-img'></li> <li> <img src='{$imgList[3]}' class='hot-news-list-img'></li> </ul></a><span>$pubdate</span></li>":"<li class='hot-news-list-detaile'> <a href='{$arcurl}'><img src='{$litpic}' alt='' class='hot-news-list-img'> <h6>$title</h6><span>$pubdate</span></a></li>"; [/field:array] {/dede:arclist} </ul>
可能上面过于复杂 我们来举个简单的适用例子比如列表第一张显示图片!
调用代码!
[field:array runphp='yes'] $image=@me['litpic']; @me=($GLOBALS['autoindex'])===1?"$image":""; [/field:array]