Вход

Просмотр полной версии : Условные операторы


Lucifer
13.09.2008, 19:15
Как использовать условные операторы (if... else) в тупоскрипте?
Есть меню
lib.menu_1 = HMENU

lib.menu_1.entryLevel = -1
lib.menu_1.1 = TMENU
lib.menu_1.1 {
NO.allWrap = <div class="menu1-level1-no"> | </div>
NO.stdWrap.htmlSpecialChars = 1
}
Нужно изменить ентрилевел, если выбраный пункт не содержит в себе подпункты. Нашел свойство IFSUB, только не знаю, как его использовать. Не знаю синтаксиса.

Valery Romanchev
13.09.2008, 21:09
условий такого плана в TS нет (entryLevel не stdWrap)
Можно написать пхп код, чтобы сделать..
но наверное задачу можно решить задав корень для данного меню (использовать HMENU тип directory)


lib.nav2 = HMENU
lib.nav2 {
special = directory
entryLevel=1
special.value.data=leveluid:1
#special.value = 140
1 = TMENU
1 {
expAll = 1
noBlur = 1
wrap = <ul>|</ul>
NO.wrapItemAndSub = <li>|</li>
NO.ATagTitle.field = description // title
CUR < .NO
CUR = 1
CUR.wrapItemAndSub = <li class="active">|</li>
ACT=1
ACT.wrapItemAndSub = <li class="active">|</li>
}
}

[treeLevel = 2,3,4,5]
lib.nav2 {
#entryLevel=2
special.value.data=leveluid:2
}
[end]

lib.nav2.stdWrap.ifEmpty.cObject < lib.nav2
lib.nav2.stdWrap.ifEmpty.cObject {
special.value.data=leveluid:1
}

Lucifer
15.09.2008, 11:02
Разобрался не со всеми свойствами. Получилость сделать только на последнем уровне вложенности, если трилевел = 3 и ентрилевел = 2. как работает условие, что бы проверять, есть ли подстраницы так и не понял... Как понимаю, это связано со special.value.data?
И нельзя ли сделать что нибудь подобное
[treeLevel = 2,3,4,5]
lib.menu_1.!IFSUB{
entryLevel=-2
}
[end]

А если делать пхп, в какой переменной лежат пункты меню? С пхп туповскими переменными еще не пользовался :rolleyes:

pomotom
15.09.2008, 12:20
нельзя. entryLevel не является свойством TMENU, тем более свойством menuItem.
Можно попытаться сделать что-то вроде:

menu = HMENU
menu.1 = TMENU
menu.1 {
CUR {
#сработает если нет потомков у текущей страницы

#отключаем стандартный рендеринг
stdWrap.override = <span></span>
doNotLinkIt = 1

#рендерим нужное меню
allStdWrap {
preCobject = HMENU
#здесь задается нужное вам меню


}

}
CURIFSUB {
#сработает если есть потомки

}

}

Lucifer
15.09.2008, 12:39
нельзя. entryLevel не является свойством TMENU, тем более свойством menuItem.

Ну а каким образом мне все реализовать? Что бы было универсально для любого уровня вложенности???