帝国cms 灵动标签中用if判断第X条附加特殊样式(列表循环不同的文章形式)

[ 帝国cms教程   // 2014-03-27  ]
640

无意中帝国论坛看到的一个帖子,觉得不错,特地转过来收藏,这里是原帖,为了便于阅读,奇芳阁稍作修改。

在用灵动标签调用文章的时候,如果没有特殊设置,每条文章的显示样式是一样的。有些人会追求“多彩”的外观,比如设置第三和第六条为红色或者加下划线等等,之前奇芳阁介绍过一篇《给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_img”><a href=”<?=$bqsr[titleurl]?>” title=”<?=$bqsr[title]?>” ><span></span><img src=”<?=$bqr[titlepic]?$bqr[titlepic]:'[!–news.url–]e/data/images/notimg.gif’?>” alt=”<?=$bqsr[title]?>” width=”74″ height=”74″ /></a></h1>
<h2><a href=”<?=$bqsr[titleurl]?>” title=”<?=$bqsr[title]?>”><?=esub($bqr[title],6,”)?></a></h2>
<href="http://www.softhome.cc/li>
[/e:loop]
</div>

表示:第8条和第16条为(<li style=”margin-right:0px;”>……<li>),而其它14条是(<li>……<li>),li后面没有了style=”margin-right:0px;”样式。

实现效果如下:

ifanr

同样,这么一个功能可以扩展出很多大家想要的效果,具体的还是需要大家的探讨和摸索。

扩展实例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=”huati”><a 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=”tit”><a 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=”_blank”><img src=”<?=$bqr[titlepic]?>” alt=”<?=$bqr[title]?>”></a>
<h4><a href=”<?=$bqsr[titleurl]?>” title=”<?=$bqr[title]?>” target=”_blank”>
<?=esub($bqr[title],30)?>
</a></h4>
<p>
<?=esub($bqr[smalltext],10)?>
</p>
<href="http://www.softhome.cc/li>
<?
}
?>
</ul>
</div>
</div>
[/e:loop]

实现效果如下:

当然,这种样式也可以通过另一种方法实现:

帝国cms如何实现限定显示的起始-结束数据条数

实例扩展2:

http://7sbxdq.com1.z0.glb.clouddn.com/20140812143009%E5%89%AF%E6%9C%AC.jpg

用<?=$bqno?>实现1,2,3,4这样的序号,但是需要在前面加一个0,也就是01,02 这样的,那么到了10的话,就会变成010,太丑了有木有?有了以下代码,就不丑了。

<?php
if($bqno==10)
{
?>
<?=$bqno?>
<?php
}
else{
?>
0<?=$bqno?>
<?
}
?>