Цвета чередующихся строк в таблице 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">

Но я не могу включить PHP при установке EE.

Есть ли что-то подобное, что я могу сделать в EE?

Спасибо!

2 ответа

Решение

Вы ищете метку переключателя.

{Переключатель ="нечетный | даже"}

Но, похоже, ты уже знал это. Похоже, вам требуется переменная team-not-with-us для!= 'Y'. Поскольку вы выполняете эту проверку после того, как результаты будут возвращены, вы закончите с несколькими нечетными или четными строками рядом друг с другом. Самый простой способ избежать этого - использовать канал: записи поиска param. Пример: 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>

Возможно, вы захотите задать вопрос о взглядах на EE по адресу https://expressionengine.stackexchange.com/. Тег {count} должен работать. Это просто подсчитывает каждую запись, которая (в вашем случае) находится в Командном канале и не является Y в вашей группе полей "команда-не-с-нами", которая, как я предполагаю, является переключателем, блоком выбора или чем-то еще.

Как выглядит ваш выведенный код?

Другие вопросы по тегам