PHPCMS V9样式循环的问题

2016-11-23 浏览:1591
PHPCMS V9样式循环的问题
评论:(0)复制地址

首先我们注意的一个问题是,作为循环,if判断的条件不能是“==”,因为是“==”的话当走到5之后就永远不会符合条件了,所以第五个后面的就不会被显示了,我们可以用求余作为条件式来作为循环条件,例如第二个:


{if $num%5==2}
        <a href="{$r[url]}">
        <li style="background:#83d0c0;">
           <div class="temai_icon11">
              <p class="bom_c11"><img src="{thumb($r[thumb],110,0)}"/></p>
           </div>
           <div class="temai_font11">
              <h1>{str_cut($r[title],20)}</h1>
              <h2>职业类型:{str_cut($r[type],20)}</h2>
              <h3>职业介绍:{str_cut($r[description],90)}</h3>
           </div>
           <div class="clear"></div>
        </li>
        </a>
{/if}

ok,以上是第一步,解决掉你的循环不能显示问题,那么咱们再来优化一下你的代码吧:

  1. 在phpcms的loop标签中,已经默认生成一个叫做$n的变量来给你计数每次循环的序号了,所以你大可不必再自己开启一个计数变量$num,直接调用$n就可以。

  2. 其实我们在每次循环只是想判断一下第几个来改一下背景颜色而已,那么没必要叠加那么多代码,所以整个循环我们可以写成这样:


{php $color=array(1=>'#fb7a65',2=>'#83d0c0',3=>'第三个颜色',4=>'第四个颜色',5=>'第五个颜色')}
{pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"}
    {loop $data $r}
    {php $index=$n%5;}
        <a href="{$r[url]}">        
            <li style="background:{$color[$index]};">           
                <div class="temai_icon11">              
                    <p class="bom_c11"><img src="{thumb($r[thumb],110,0)}"/></p>
                </div>           
                <div class="temai_font11">              
                    <h1>{str_cut($r[title],20)}</h1>              
                    <h2>职业类型:{str_cut($r[type],20)}</h2>              
                    <h3>职业介绍:{str_cut($r[description],90)}</h3>           
                </div>           
                <div class="clear"></div>        
            </li>        
        </a>
    {/loop}
<div id="pages">{$pages}</div>
{/pc}


PS:有兴趣可以分析下phpcms的标签解析类中的方法来更好的了解它的标签(phpcms/modules/content/class/content_tag.class.php),我在iphpcms中的标签教程中也有详细讲解可以参考。

评论:(0)复制地址
发布:苗景云 | 分类:IT技术&设计 | Tags:PHPCMS

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。