Циклы в Fenom - таблица по 4 в ряд
Всем привет, изучая Fenom пытаюсь решать частые задачи на сайтах и сегодня возникла следующая:
Нужно вывести таблицу названий стран, всего их 88 по 4 названия в одной строке, то есть должно получится 22 ряда по 4 столбика со значениями.
Пробовал использовать для определения текущей итерации параметр index, но он всегда начинается с ноля, дополнительный свой счётчик создать не получилось, так же встала проблема, что конструкция {continue} не работает, сразу ломается весь цикл и ничего не выводится.
Вот пример как я пытаюсь это сделать:
Подскажите как можно вывести все страны по 4 в ряд на Fenom?
Нужно вывести таблицу названий стран, всего их 88 по 4 названия в одной строке, то есть должно получится 22 ряда по 4 столбика со значениями.
Пробовал использовать для определения текущей итерации параметр index, но он всегда начинается с ноля, дополнительный свой счётчик создать не получилось, так же встала проблема, что конструкция {continue} не работает, сразу ломается весь цикл и ничего не выводится.
Вот пример как я пытаюсь это сделать:
//Пример массива со странами
{var $countryArray = [
"ag"=>"Антигуа и Барбуда",
"al"=>"Албания",
"am"=>"Армения",
"at"=>"Австрия"
]
<table>
<tbody>
{foreach $countryArray as $key => $value index=$index first=$first}
<tr>
<td class="country_{$key}">{$value}</td>
</tr>
{/foreach}
</tbody>
</table>
В этом коде каждая страна выводится в своей строке таблицы.Подскажите как можно вывести все страны по 4 в ряд на Fenom?
Комментарии: 5
{var $countryArray = [
"ag"=>"Антигуа и Барбуда",
"al"=>"Албания",
"am"=>"Армения",
"at"=>"Австрия"
]}
<table>
<tbody>
{var $i = 0}
{foreach $countryArray as $key => $value}
{var $i = $i + 1}
{if $i == 1}<tr>{/if}
<td class="country_{$key}">{$value}</td>
{if $i == 4}</tr>{var $i = 0}{/if}
{/foreach}
</tbody>
</table>
Илья, спасибо огромное, всё получилось!
Могу ошибаться, но на первый взгляд получается, что последний ряд закроется только если количество стран будет кратно четырём.
Всё верно. Надо добавить проверку на последний элемент.
Илья, Сергей, спасибо Вам большое за то, что помогаете и отвечаете на вопросы новичков в MODX.
Конечно для Вас, как для программистов, эти задачки как орешки, но для меня как верстальщика не всегда получается найти простое и изящное решение подобных моментов.
А по поводу закрывающего тега можно не переживать и не делать дополнительную проверку на последний элемент, так как в спецификации html есть группа тегов (всего их 18 и tr в их компании), которые можно не закрывать явно и парсер браузера достроит закрывающую часть сам.
Во всех известных и малоизвестных мне браузерах это штука работает без проблем.
Вот табличка этих тегов, кому будет интересно — yadi.sk/i/4UcpsIK33NegJt
Конечно для Вас, как для программистов, эти задачки как орешки, но для меня как верстальщика не всегда получается найти простое и изящное решение подобных моментов.
А по поводу закрывающего тега можно не переживать и не делать дополнительную проверку на последний элемент, так как в спецификации html есть группа тегов (всего их 18 и tr в их компании), которые можно не закрывать явно и парсер браузера достроит закрывающую часть сам.
Во всех известных и малоизвестных мне браузерах это штука работает без проблем.
Вот табличка этих тегов, кому будет интересно — yadi.sk/i/4UcpsIK33NegJt
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.