Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   condition для отдельного пункта меню, сделанного с помощью gifbuilder (http://forum.typo3.ru/showthread.php?t=6217)

wind 30.04.2008 13:31

condition для отдельного пункта меню, сделанного с помощью gifbuilder
 
Проблема заключается в следующем:

возле каждого пункта меню выводит картинка. меню генерируется при помощи gifbuilder. необходимо чтобы для пункта меню с uid=2 картинка не отображалась перед названием пункта меню. пишу такой код:

lib.Top_Menu = HMENU
lib.Top_Menu.1 = GMENU
lib.Top_Menu.1.NO {

10.1.entryLevel = 0
XY = [10.w]+40,153

5 = IMAGE
5.offset = 0,5
10 = TEXT
10.text.field = nav_title
10.offset = -2,17
10.align = center
backColor=#4a5047
10.fontFile = t3lib/fonts/gnb_____.PFB
10.fontSize = 9
10.fontColor = #ffffff
10.text.case = upper
10.value = 75
10.xSpaceBefore = 3
10.xSpaceAfter = 3
10.pixelSpaceFontSizeRef = 9

[uid= 2]
5.file = fileadmin/template/images/clear.png

[else]
5.file = fileadmin/template/images/arrow_white.png

[end]

}

при этом в object browser получаю следующие ошибки:
Line 2566: Object Name String, "[uid" contains invalid character "[". Must be alphanumeric or one of: "_-."
2: Line 2569: Object Name String, "[else]" contains invalid character "[". Must be alphanumeric or one of: "_-."
2: Line 2572: Object Name String, "[end]" contains invalid character "[". Must be alphanumeric or one of: "_-."


если изменить условие и перенести его за пределы фигурных скобок {}:
[globalVar = TSFE:id = 2]
lib.Top_Menu.1.NO.5.file = fileadmin/template/images/clear.png
[else]
lib.Top_Menu.1.NO.5.file = fileadmin/template/images/arrow_white.png
[end]

то ошибок нет, но скрипт работает таким образом, что если текущая страница с uid=2, то нигде картинки перед названиемями пунктов меню не отображаются, а если не2- то везде отображаются. т.е. такой вариант не подходит для данной задачи..

void 30.04.2008 20:19

Вообще, построение таких условий достаточно сложно.
[uid = ] - нет такого условия, вы можете убедиться в этом в TSRef. Кроме того, []-условия не могут быть вложены в блоки {}.
Поэтому такие условия делаются через блоки .if. Примерно так:

5 = IMAGE
5{
#blabla
file = file1.jpg
if{
value.data = field:uid
equals = 2
}
}

15 = IMAGE
15{
#labla
file = file2.jpg
if{
value.data = field:uid
equals = 2
negate = 1
}
}

wind 05.05.2008 12:45

спасибо огромное! заработало:)


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

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