ExpressionEngine表中的交替行颜色

时间:2013-03-19 20:24:59

标签: switch-statement expressionengine

我有一些代码可以根据条目的行值创建一个替换行颜色的表。

<table class="authorList" cellspacing="0">
{exp:channel:entries channel="team" disable="categories|member_data|pagination" orderby="team-last-name" sort="asc"}
{if team-not-with-us != 'y'}
    <tr class="{switch="odd|even"} authorInfo">

      <th class="authorName">
        {if team-bio != ''}<a href="{site_url}about/the-team/{url_title}">{/if}
          {title}
        {if team-bio != ''}</a>{/if}
      </th>
      <td class="position">{team-position}</td>

    </tr>
{/if}
{/exp:channel:entries}
</table>

问题是当我删除一个条目时,我最终连续两个奇数或两个偶数,留下两个相同颜色的行并排。

虽然切换功能很方便,但它引用了数据库中的行数。我不相信我可以应用它来引用if语句中的实际行计数来解决我的问题。 (如果我错了,请纠正我。)

我知道如何使用php进行此更改:

<?php $oddevenrow = 0; ?>
{if team-not-with-us != 'y'}
    <?php $oddevenrow++; ?>
    <?php ($oddeven = ($oddevenrow % 2 ? 'odd' : 'even')); ?>
    <tr class="<?php echo $oddeven; ?> authorInfo">

但我不允许在EE安装中打开PHP。

我能在EE中做些类似的事吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

您正在寻找切换标签。

{交换机= “奇|甚至”}

但看起来你已经知道了。看起来你需要变量团队 - 而不是我们!='y'。因为在返回结果后你正在进行验证,所以你会在彼此相邻的多个奇数或偶数行结束。避免这种情况的简单方法是使用channel:entries搜索参数。示例:search:team-not-with-us =“not y”

<table class="authorList" cellspacing="0">
{exp:channel:entries 
    channel="team" 
    disable="categories|member_data|pagination" 
    orderby="team-last-name" 
    sort="asc"
    search:team-not-with-us="not y"
}
    <tr class="{switch="odd|even"} authorInfo">

      <th class="authorName">
        {if team-bio != ''}<a href="{site_url}about/the-team/{url_title}">{/if}
          {title}
        {if team-bio != ''}</a>{/if}
      </th>
      <td class="position">{team-position}</td>

    </tr>
{/exp:channel:entries}
</table>

答案 1 :(得分:1)

您可能想尝试在https://expressionengine.stackexchange.com/询问EE窥视{count}标记应该有效。这简单地计算了(在你的情况下)在团队频道中的每个条目,而不是你的“团队与我们一起”字段组中的Y,我假设它是一个开关或选择框或其他东西。< / p>

您输出的代码是什么样的?