shoorick: (Default)
[personal profile] shoorick
Если при проверке длины передаваемого массива в Template Toolkit использовать
[% IF array_name %]
, то условие будет истинным даже в том случае, когда массив пуст. Во всяком случае, это справедливо для массивов, получаемых из БД:
$c->stash->{‘array_name’} = [$rs->some_values];
Но если использовать метод size — всё получается: условие
[% IF array_name.size %]
оказывается истинным лишь тогда, когда в массиве что-то есть и ложным ­— если массив пуст.

ООП на марше

Date: 2007-08-21 03:04 pm (UTC)
From: [identity profile] selfmade.livejournal.com
Массив - это корзинка. В первом случае проверяется существует ли карзинка. Во втором случае проверяется количество грибов в карзинке. Засада может быть в другом - проверка количества грибов в несуществующей карзинке.

Date: 2007-08-21 06:51 pm (UTC)
From: [identity profile] selfmade.livejournal.com
И как это меня угораздило неграмотно написать. :)

Нашел!

Date: 2007-12-10 09:18 am (UTC)
From: [identity profile] albatros-kleo.livejournal.com
Блин, столкнулся с этой же проблемой, всю доку перерыл, но так и не смог найти этот несчастный size. Уже было подумал прикручивать итератор, когда гугла выплюнул Ваш ЖЖ.
Спасибо.
Подскажите, где вы откопали это свойство? Только начал разбираться с тт, информации часто не хватает. Дока какая-то неполная и корявая. Где еще можно копать? Гугла в этом деле помогает слабо

Тернарный оператор

Date: 2007-12-25 02:14 pm (UTC)
From: [identity profile] albatros-kleo.livejournal.com
shoorick, направь на путь истинный :)
Вопрос со сабжу:
пишу [% condition ? vars_1_value : 'some_message' %]
работает замечательно
пытаюсь теперь используя тернарный оператор выполнить включение блока через INCLUDE:
[% condition ? INCLUDE block_name : 'some_message' %]
вот эта конструкция работать отказывается. Переписываю обычным образом:
[% IF condition;
INCLUDE block_name;
ELSE;
'some_message';
END %]
все работает ок

в общем вывод - конструкция INCLUDE block_name отказывается работать в тернарном операторе.
Пробовал ее заключать в скобки, в фигурные скобки, расставлял точки с запятыми в разных комбинациях, но положительного результата не добился. Рисовать же обычным методом кучу строк, читабельность которых сомнительно очень не хочется.
Есть ли решение? Не сталкивались?

Re: Тернарный оператор

Date: 2007-12-26 05:49 am (UTC)
From: [identity profile] shoorick.livejournal.com
Не сталкивался.
Если столкнусь — проверю.

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 22nd, 2026 08:08 pm
Powered by Dreamwidth Studios