PDA

Просмотр полной версии : как определить на каком уровне меню мы находимся?


Илья
05.06.2006, 15:11
[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]

Dutchak Vitaly
06.06.2006, 04:52
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
спасибо, попробую и озвучу результаты.
а что обычно такая задача решается как то по другому?

Илья
06.06.2006, 13:36
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]


Так попробуйте, я не пробывал на работоспособность, но может сработает
Показывает на всех уровнях "уровень 5", то есть как и в моем коде, условие почему то не работает...

Илья
08.06.2006, 22:19
не работает короче.
у кого-нибудь будут еще мысли как сделать такую проверку?

demav
09.06.2006, 10:02
не работает короче.
у кого-нибудь будут еще мысли как сделать такую проверку?

Столкнулся с такой "фичей".
Если условия проверяются внутри блока {}, то выполняются все ветки, т.е. как будто строки условия не заданы.

Ваш случай немного другой, но попробуйте вынести условия на самый верхний уровень, проверьте.

demav
09.06.2006, 10:04
хотя, похоже, "случай" как раз тот. если выполнить последовательно все строки (условные операторы не воспринимаются), то получится как раз пятый уровень.

Илья
09.06.2006, 12:08
Да действительно похоже, что выполняются все подряд (проверял меняя порядок).
И опять же правда что вся конструкция действительно находится внутри page1 { ... }
Попробую исправить код.
demav спасибо.

Илья
09.06.2006, 13:26
Заработало!
Действительно это фича, или скорее БАГ: при заключении в { } условия не срабатывают.
Нерабочий код был такой:
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]

Тема закрыта.
Спасибо всем откликнувшимся.

Pavel Antonov
09.06.2006, 16:57
Это к вопросу как Вы оформляете посты на форуме. Всегда надо давать логически законченный код!

Кроме того неплохо читать иногда документацию, где написано черным по-белому, что условные конструкции не работают будучи заключенными в { }. Парсер TypoScript скорее всего выдавал вам ошибки о наличии лишних скобок, просто вы не обращали внимания.

Илья
13.06.2006, 11:55
Это к вопросу как Вы оформляете посты на форуме. Всегда надо давать логически законченный код!

Кроме того неплохо читать иногда документацию, где написано черным по-белому, что условные конструкции не работают будучи заключенными в { }. Парсер TypoScript скорее всего выдавал вам ошибки о наличии лишних скобок, просто вы не обращали внимания.
Каюсь, сам виноват, впредь буду внимательнее!