无意中帝国论坛看到的一个帖子,觉得不错,特地转过来收藏,这里是原帖,为了便于阅读,奇芳阁稍作修改。
在用灵动标签调用文章的时候,如果没有特殊设置,每条文章的显示样式是一样的。有些人会追求多彩的外观,比如设置第三和第六条为红色或者加下划线等等,之前奇芳阁介绍过一篇《给wordpress主题添加内置文章形式(post-formats),列表循环不同的文章形式》,那么帝国cms如何使用灵动标签中的if判断实现附加特殊样式呢?
比如调用16条信息,第8条和第16条采用其它样式,与其它14条样式不同。
代码如下:
div class=must
[e:loop={3,16,0,0}]
?php
if($bqno==8||$bqno==16)
{
echo li style=margin-right:0px;';
}
else
{
echo li';
}
?
h1 class=app_imga href=?=$bqsr[titleurl]? title=?=$bqsr[title]? span/spanimg src=?=$bqr[titlepic]?$bqr[titlepic]:'[!news.url]e/data/images/notimg.gif? alt=?=$bqsr[title]? width=74 height=74 //a/h1
h2a href=?=$bqsr[titleurl]? title=?=$bqsr[title]??=esub($bqr[title],6,)?/a/h2
/li
[/e:loop]
/div
表示:第8条和第16条为(li style=margin-right:0px;li),而其它14条是(lili),li后面没有了style=margin-right:0px;样式。
实现效果如下:
同样,这么一个功能可以扩展出很多大家想要的效果,具体的还是需要大家的探讨和摸索。
扩展实例1:
要调用某个标题分类的文章,实现第一条为图片头条,其他为标题列表。一般情况下,我们会分开来调用,图片归图片,文字归文字,但是这样不仅不方便,而且也因为标题的重复而影响美观。这时候上面的原理就可以实现了。
下面是代码:
[e:loop={chanye,4,18,0,ttid=22}]
?
if($bqno==1)
{
?
div class=topic_now
div class=tit
h3本期话题/h3
/div
div class=con
div class=huatia href=?=$bqsr[titleurl]? target=_blank title=?=$bqr[title]?img src=?=$bqr[titlepic]? alt=?=$bqr[title]? /
div class=cover
?=esub($bqr[title],30)?
/div
/a /div
/div
/div
div class=topic_before
div class=tita href=/t/huati/ class=more target=_blank更多+/a
h3往期话题/h3
/div
div class=con
ul
?php
}
else{
?
li a href=?=$bqsr[titleurl]? title=?=$bqr[title]? class=fl target=_blankimg src=?=$bqr[titlepic]? alt=?=$bqr[title]?/a
h4a href=?=$bqsr[titleurl]? title=?=$bqr[title]? target=_blank
?=esub($bqr[title],30)?
/a/h4
p
?=esub($bqr[smalltext],10)?
/p
/li
?
}
?
/ul
/div
/div
[/e:loop]
实现效果如下:
当然,这种样式也可以通过另一种方法实现:
帝国cms如何实现限定显示的起始-结束数据条数
实例扩展2:
用?=$bqno?实现1,2,3,4这样的序号,但是需要在前面加一个0,也就是01,02 这样的,那么到了10的话,就会变成010,太丑了有木有?有了以下代码,就不丑了。
?php
if($bqno==10)
{
?
?=$bqno?
?php
}
else{
?
0?=$bqno?
?
}
?