Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
05.06.2006, 15:11 | #1 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
как определить на каком уровне меню мы находимся?
[treeLevel = ] почему то не работает.
При вставке подобной конструкции в setup, вместо subparts.TEXT1 всегда показывается "else", на всех уровнях меню. [treeLevel = 2] subparts.TEXT1 = TEXT subparts.TEXT1.value = уровень 2 subparts.TEXT1.insertData = 1 [treeLevel = 3] subparts.TEXT1 = TEXT subparts.TEXT1.value = уровень 3 subparts.TEXT1.insertData = 1 [treeLevel = 4] subparts.TEXT1 = TEXT subparts.TEXT1.value = уровень 4 subparts.TEXT1.insertData = 1 [treeLevel = 5] subparts.TEXT1 = TEXT subparts.TEXT1.value = уровень 5 subparts.TEXT1.insertData = 1 [else] subparts.TEXT1 = TEXT subparts.TEXT1.value = else subparts.TEXT1.insertData = 1 [global] |
06.06.2006, 04:52 | #2 |
TYPO3 Infected
|
subparts.TEXT1 = TEXT
subparts.TEXT1.value = else subparts.TEXT1.insertData = 1 [treeLevel = 2] subparts.TEXT1.value = уровень 2 [end] [treeLevel = 3] subparts.TEXT1.value = уровень 3 [end] [treeLevel = 4] subparts.TEXT1.value = уровень 4 [end] [treeLevel = 5] subparts.TEXT1.value = уровень 5 [end] Так попробуйте, я не пробывал на работоспособность, но может сработает |
06.06.2006, 12:05 | #3 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
спасибо, попробую и озвучу результаты.
а что обычно такая задача решается как то по другому? Последний раз редактировалось Илья; 06.06.2006 в 13:33 |
06.06.2006, 13:36 | #4 | |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Цитата:
|
|
08.06.2006, 22:19 | #5 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
не работает короче.
у кого-нибудь будут еще мысли как сделать такую проверку? |
09.06.2006, 10:02 | #6 | |
Senior Member
Регистрация: 21.04.2006
Сообщений: 245
|
Цитата:
Если условия проверяются внутри блока {}, то выполняются все ветки, т.е. как будто строки условия не заданы. Ваш случай немного другой, но попробуйте вынести условия на самый верхний уровень, проверьте. |
|
09.06.2006, 10:04 | #7 |
Senior Member
Регистрация: 21.04.2006
Сообщений: 245
|
хотя, похоже, "случай" как раз тот. если выполнить последовательно все строки (условные операторы не воспринимаются), то получится как раз пятый уровень.
|
09.06.2006, 12:08 | #8 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Да действительно похоже, что выполняются все подряд (проверял меняя порядок).
И опять же правда что вся конструкция действительно находится внутри page1 { ... } Попробую исправить код. demav спасибо. |
09.06.2006, 13:26 | #9 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Заработало!
Действительно это фича, или скорее БАГ: при заключении в { } условия не срабатывают. Нерабочий код был такой: page.1{ subparts.TEXT1 = TEXT subparts.TEXT1.value = else subparts.TEXT1.insertData = 1 [treeLevel = 2] subparts.TEXT1.value = уровень 2 [end] [treeLevel = 3] subparts.TEXT1.value = уровень 3 [end] } Заработало так: page.1 { ... } page.1.subparts.TEXT1 = TEXT page.1.subparts.TEXT1.value = else page.1.subparts.TEXT1.insertData = 1 [treeLevel = 2] page.1.subparts.TEXT1.value = уровень 2 [end] [treeLevel = 3] page.1.subparts.TEXT1.value = уровень 3 [end] Тема закрыта. Спасибо всем откликнувшимся. |
09.06.2006, 16:57 | #10 |
Senior Member
|
Это к вопросу как Вы оформляете посты на форуме. Всегда надо давать логически законченный код!
Кроме того неплохо читать иногда документацию, где написано черным по-белому, что условные конструкции не работают будучи заключенными в { }. Парсер TypoScript скорее всего выдавал вам ошибки о наличии лишних скобок, просто вы не обращали внимания. |