Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   как определить на каком уровне меню мы находимся? (http://forum.typo3.ru/showthread.php?t=1486)

Илья 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

Цитата:

Сообщение от Dutchak Vitaly
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 скорее всего выдавал вам ошибки о наличии лишних скобок, просто вы не обращали внимания.


Часовой пояс GMT +4, время: 08:46.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot