Вход

Просмотр полной версии : Помогите с синтаксисом в меню


Илья
15.02.2006, 23:19
Всем привет.
Только начал осваивать тайпо и столкнулся с небольшой проблемой.
Нужно сделать контекстно зависимое меню (показывать только пункты меню, которые находятся в одной части поддерева).
Код такой (взят из мануала про GoLive шаблоны)
#Навигация слева
subparts.LEFTNAV = HMENU
subparts.LEFTNAV.special = directory
subparts.LEFTNAV.special.value = {field:pid}
subparts.LEFTNAV.1 = TMENU
subparts.LEFTNAV.1.wrap = <center> | </center>
subparts.LEFTNAV.1.NO {
before = &nbsp;|&nbsp;
after = |*||*| &nbsp;|&nbsp;
}

Конструкция вида: subparts.LEFTNAV.special.value = {field:pid} не работает.
то есть меню не видно, хотя отдельно можно вывести значение {field:pid} (цифра правильная, она то и нужна).
Если вручную забить например: subparts.LEFTNAV.special.value = 8, то меню для всех подпунктов имеющих родителя pid=8 строится отлично.
Какой нужен синтаксис для передачи значения {field:pid} вот этому делу: subparts.LEFTNAV.special.value

carlos
16.02.2006, 05:19
#Навигация слева
subparts.LEFTNAV = HMENU
subparts.LEFTNAV.special = directory
subparts.LEFTNAV.special.value = {field:pid}

subparts.LEFTNAV.special.value.insertData

subparts.LEFTNAV.1 = TMENU
subparts.LEFTNAV.1.wrap = <center> | </center>
subparts.LEFTNAV.1.NO {
before = &nbsp;|&nbsp;
after = |*||*| &nbsp;|&nbsp;
}

Илья
16.02.2006, 11:41
Не работает, почему то!?:
#Навигация слева
subparts.LEFTNAV = HMENU
subparts.LEFTNAV.special = directory
subparts.LEFTNAV.special.value = {field:pid}

subparts.LEFTNAV.special.value.insertData

subparts.LEFTNAV.1 = TMENU
subparts.LEFTNAV.1.wrap = <center> | </center>
subparts.LEFTNAV.1.NO {
before = &nbsp;|&nbsp;
after = |*||*| &nbsp;|&nbsp;
}

carlos
16.02.2006, 13:56
subparts.LEFTNAV = HMENU
subparts.LEFTNAV.special = directory

subparts.LEFTNAV.special.value.data = field:pid
или
subparts.LEFTNAV.special.data = field:pid

subparts.LEFTNAV.1 = TMENU
subparts.LEFTNAV.1.wrap = <center> | </center>
subparts.LEFTNAV.1.NO {
before = &nbsp;|&nbsp;
after = |*||*| &nbsp;|&nbsp

??????? попробуйте

Илья
16.02.2006, 19:41
Спасибо, этот код работает!
subparts.LEFTNAV.special.value.data = field:pid

Но оказалось, что мне нужно немного другое. :?
Структура сайта примерно такая:
- Главная страница
- Страница 1
-Подстраница 1
-Подстраница 2
-Подстраница 3
- Страница 2
-Подстраница 1
-Подстраница 2
-Подстраница 3
- Страница 3
-Подстраница 1
-Подстраница 2
-Подстраница 3
- Страница 4
- Страница 5

Нужно сделать, чтобы это меню показывалось только тогда, когда мы находимся внутри подстраниц или страниц которые
имеют внутри подстраницы, а когда на Страница 4, Страница 5 - меню не должно быть видно.
При чтении русских мануалов по тайпо где-то видел нечно похожее, на предмет проверки наличия вложенных страниц.
Но когда понадобилось, то найти естественно не смог.

carlos
17.02.2006, 04:27
subparts.LEFTNAV = HMENU
subparts.LEFTNAV.special = directory

subparts.LEFTNAV.special.value.data = field:pid
или
subparts.LEFTNAV.special.data = field:pid

subparts.LEFTNAV.1 = TMENU
subparts.LEFTNAV.1.wrap = <center> | </center>
subparts.LEFTNAV.1.NO {
before = &nbsp;|&nbsp;
after = |*||*| &nbsp;|&nbsp

??????? попробуйте

carlos
17.02.2006, 07:46
извиняюсь - вчера отправил - сегодня пришел и нажал f5 - повторный пост - щас подумаю

carlos
17.02.2006, 09:31
слушай - даже не знаю - надо у гуруманов спросить

вопрос - а навигация по верхним уровням по другому меню в другом месте? спрашиваю так потому что непонятно как вообще попасть на 2 уровень если не отображается 1 уровень

carlos
17.02.2006, 09:40
да косяк определенный в форуме - нажимаешь f5 - идет повторный пост

Илья
21.02.2006, 13:05
carlos
Еще раз поменялись требования к меню.
:(
Так что как только САМ осмыслю как и что должно работать, так сообщу.
Может быть немного не в тему, но помимо всех запарок с меню нужно чтобы в определеном месте страницы показывался полный путь типа: (Главная-О Компании-Контакты)

На форуме нашел пример:
Не совсем понимаю что вам надою Можете изъяснить точнее?
Если вам надо просто строка-путь к текущей странице от root (Главная-О Компании-Контакты)
Тогда это делается с помощью TS:
lib.range_menu >
lib.range_menu = HMENU
lib.range_menu.special = rootline
lib.range_menu.special.range = 1|-1
lib.range_menu.special.targets.3 = page
lib.range_menu.1 = TMENU
lib.range_menu.1.target = _top
lib.range_menu.1.wrap = |
lib.range_menu.1.NO {
linkWrap = | |*| &nbsp;>&nbsp; |*|
}
Не въехал в то, почему в конце первой строки стоит >
Каким образом определить в шаблоне место для вставки этого пути? Вставить куда-нибудь "range_menu"? вроде бы нет, тогда как?
В общем вопросов больше чем ответов.
Надеюсь на помощь!

carlos
22.02.2006, 07:53
первая строка не обязательна - это обнуление переменной

надо тебе прочитать про markers как в шаблон строку вставлять - tsref или tsbyexample

я по памяти и не вспомню как это делается - примерно так:
в шаблон ставишь ###my_string_path_to_page###
а в шаблоне типа markers.my_string_path_to_page = lib.range_menu

Илья
22.02.2006, 13:56
Спасибо.
Буду копать.