SMARTY - 部分中的最大值不能正常工作

时间:2014-08-25 23:08:42

标签: php html smarty

我的部分循环出了问题。我有3个不同的剖面循环,我只需要显示5个结果(如果第一个部分循环得到5个结果或者第一个结果为2个,第二个结构为1个,第二个循环结构为2个结果,则无关紧要)。第一个循环中的最大值设置为5并且在内部我添加计数器以检查是否少于5个结果如果结果少于5我开始第二个循环现在当我在第二个循环中设置最大值时出现问题max-(值我的计数器)它忽略了这个值,并且总是显示第二个循环的5个结果,第三个循环没有显示,那没关系,但是第二个应该将max设置为1.请原谅我的英文不好。非常感谢您的建议。祝你有愉快的一天。

演示:Upcoming events module on right bottom

代码:

{assign var="counter" value=1}
{section name=ArtCat2 loop=$ArtCat2 max=5}
    {assign var="cc" value=$counter++}
    CC:{$cc}
    <br/>
    <br/>
    {foreach from=$category item=CAT}
        <div>
            <h2 class="h2">
                <a href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat2[ArtCat2].ID}_{$ArtCat2[ArtCat2].friendlyTitle}.html?do=article">
                    {$ArtCat2[ArtCat2].Title}
                </a>
            </h2>
                                            <span class="small2">
                                            <b>{$ArtCat2[ArtCat2].Date} | {$ArtCat2[ArtCat2].Location}</b>
                                            </span>
            {$ArtCat2[ArtCat2].ShortText}
            <a class="link3"
               href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat2[ArtCat2].ID}_{$ArtCat2[ArtCat2].friendlyTitle}.html?do=article">
                <span class="small2"></span></a>
        </div>
        <br class="clear"/>
        <br/>
    {/foreach}
    {* Online *}
{/section}
{if $cc >= 5}
{else}
    {section name=ArtCat3 loop=$ArtCat3 max=5-$cc}
        {assign var="cc2" value=$counter++}
        CC: {$cc}
        <br/>
        <br/>
        CC2:{$cc2}
        <br/>
        <br/>
        {foreach from=$category item=CAT}
            <div>
                <h2 class="h2">
                    <a href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat3[ArtCat3].ID}_{$ArtCat3[ArtCat3].friendlyTitle}.html?do=article">
                        {$ArtCat3[ArtCat3].Title}
                    </a>
                </h2>
                                            <span class="small2">
                                            <b>{$ArtCat3[ArtCat3].Date} | {$ArtCat3[ArtCat3].Location}</b>
                                            </span>
                <br/>
                {$ArtCat3[ArtCat3].ShortText}
                <a class="link3"
                   href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat3[ArtCat3].ID}_{$ArtCat3[ArtCat3].friendlyTitle}.html?do=article">
                    <span class="small2"></span></a>
            </div>
            <br class="clear"/>
            <br/>
        {/foreach}


    {/section}
{/if}
{* International *}
{if $cc+$cc2 >= 5}
{else}
    {section name=ArtCat4 loop=$ArtCat4 max=5-$cc+$cc2}
        {foreach from=$category item=CAT}
            <div>
                <h2 class="h2">
                    <a href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat4[ArtCat4].ID}_{$ArtCat4[ArtCat4].friendlyTitle}.html?do=article">
                        {$ArtCat4[ArtCat4].Title}
                    </a>
                </h2>
                                            <span class="small2">
                                            <b>{$ArtCat4[ArtCat4].Date} | {$ArtCat4[ArtCat4].Location}</b>
                                            </span>
                <br/>
                {$ArtCat4[ArtCat4].ShortText}
                <a class="link3"
                   href="/{$country}/{$lang}/{$CAT.ID}_{$CAT.friendlyTitle}/{$ArtCat4[ArtCat4].ID}_{$ArtCat4[ArtCat4].friendlyTitle}.html?do=article">
                    <span class="small2"></span></a>
            </div>
            <br class="clear"/>
            <br/>
        {/foreach}
    {/section}
{/if}

1 个答案:

答案 0 :(得分:0)

我目前无法测试它,但我认为问题出在那一行:

{section name=ArtCat4 loop=$ArtCat4 max=5-$cc+$cc2}

应该是:

{section name=ArtCat4 loop=$ArtCat4 max=5-$cc-$cc2}

因为您之前检查过条件{if $cc+$cc2 >= 5}