Как отобразить список цифр и символов Alphabeth с помощью цикла с помощью Smarty

Использование циклов в Smarty и многих языках программирования облегчает разработчику процесс написания шаблонов. Например, представьте, что вам нужно написать какую-то страницу лексикона, и вам нужно показать организованный / неорганизованный список с каждым символом алфавита и числами, которые перенаправляют на какой-то URL, где слова, начинающиеся с упомянутого символа, отображаются на некоторых другой список.

Конечно, это становится скучной задачей, если все писать вручную с помощью HTML:


1
2
3
4
5
X
Y
Z

Никто не хочет этого, правда. Игнорируя тот факт, что его довольно сложно поддерживать, размер файлов вашего исходного кода будет сильно отличаться от кода хорошего качества. Если вы используете шаблоны Smarty в своем проекте, вы можете легко сгенерировать предыдущий HTML с помощью цикла и модификаторов диапазона.

Числовой список

Для обоих списков, числовых и буквенных, мы будем использовать модификаторы from и range в цикле foreach. Эти атрибуты работают как оператор спреда, так сказать, следуя в этом случае в порядке возрастания (так как мы используем диапазон от 0 до 9), smarty также предлагает поддержку в порядке убывания (от 9 до 0):

{* To display the list of numbers from 0 to *}
{foreach item=i from=0|@range:9}
{*
$i in this case contains the number in the order of the loop
e.g 1, 2, 3, 4 ...
The output would be:

*}
{$i}
{/foreach}

Предыдущий фрагмент будет достаточно для отображения чисел от 0 до 9 в нашем лексиконе. Обратите внимание, что оно не ограничено 0-9, но также любым другим числом.

Алфавитный список

Как и в случае с диапазоном чисел, Smarty достаточно умен, чтобы делать то же самое с буквенными символами, поэтому, если вы хотите отобразить список от A до Z, следующий фрагмент должен помочь вам:

{* To display the list of characters from A to Z *}
{foreach item=i from='A'|@range:'Z'}
{*
$i in this case contains the character in the order of the loop
e.g A, B, C, D ...
The output would be:
A
*}
{$i}
{/foreach}

Та же логика для обратного порядка применима и к символам (от Z до A). В этом случае с символами наш цикл использует символы верхнего регистра, поэтому вывод наших символов будет в верхнем регистре (как и ожидалось). Если сделать то же самое с символами в нижнем регистре, все символы будут отображаться в нижнем регистре.

Ссылка на основную публикацию
Adblock
detector