![]() |
как определить на каком уровне меню мы находимся?
[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] |
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] Так попробуйте, я не пробывал на работоспособность, но может сработает |
спасибо, попробую и озвучу результаты.
а что обычно такая задача решается как то по другому? |
Цитата:
|
не работает короче.
у кого-нибудь будут еще мысли как сделать такую проверку? |
Цитата:
Если условия проверяются внутри блока {}, то выполняются все ветки, т.е. как будто строки условия не заданы. Ваш случай немного другой, но попробуйте вынести условия на самый верхний уровень, проверьте. |
хотя, похоже, "случай" как раз тот. если выполнить последовательно все строки (условные операторы не воспринимаются), то получится как раз пятый уровень.
|
Да действительно похоже, что выполняются все подряд (проверял меняя порядок).
И опять же правда что вся конструкция действительно находится внутри page1 { ... } Попробую исправить код. demav спасибо. |
Заработало!
Действительно это фича, или скорее БАГ: при заключении в { } условия не срабатывают. Нерабочий код был такой: 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] Тема закрыта. Спасибо всем откликнувшимся. |
Это к вопросу как Вы оформляете посты на форуме. Всегда надо давать логически законченный код!
Кроме того неплохо читать иногда документацию, где написано черным по-белому, что условные конструкции не работают будучи заключенными в { }. Парсер TypoScript скорее всего выдавал вам ошибки о наличии лишних скобок, просто вы не обращали внимания. |
Часовой пояс GMT +4, время: 08:46. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot