Просмотр полной версии : Подменю для главной страницы сайта
ksevelyar
18.03.2009, 19:42
Если мне требуется ссылка на главную страницу в меню - на уровне других страниц меню (обычно втором) создаётся страница "Главная", её тип изменяется на ярлык, который ведёт на главную.
Если мне требуется подменю на главной странице - создаётся страница "главная", внутри этой страницы создаются страницы составляющие это самое подменю.
После этого уже корневая страница делается ярлыком на эту квази-главную страницу.
Квази-главная страница не должна показываться в меню, поэтому ставим соответствующую опцию в её свойствах.
Когда вводится адрес сайта - site.ru, например, пользователь видит подменю.
Нюанс: квази-главная страница не исчезает, чтобы поисковики не индексировали её, она запрещается в robots.ini.
А что делать если нужно чтобы было и подменю на главной странице и ссылка на главную страницу в меню?
Логично создать ещё одну страницу главная-ярлык и сделать её ярлыком уже на главную - однако это не работает. Не работает и изменение типа страницы на внешнюю ссылку, адрес которой site.ru
-=UncleByte=-
19.03.2009, 06:43
lib.mainmenu = COA
lib.mainmenu {
10 = TEXT
10.value = Главная
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
ATagParams = class="active"
}
}
}
}
[treeLevel = 0]
lib.mainmenu = COA
lib.mainmenu {
10 = TEXT
10.value = Главная
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
10.typolink.ATagParams = class="active"
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
}
}
}
}
[end]Примерно так.
ksevelyar
19.03.2009, 17:01
Спасибо, для моего сайта с automaketemplate рабочее решение выглядит так:
subparts.rmenu = HMENU
subparts.rmenu.entryLevel = 1
subparts.rmenu.1 = TMENU
subparts.rmenu.1.expAll = 1
subparts.rmenu.1 {
NO {
linkWrap = <div class="l1">|</div>
10 = TEXT
10.text.field = title
}
ACT = 1
ACT.linkWrap = <div class="l1act">|</div>
CUR = 1
CUR < .ACT
CUR.doNotLinkIt = 1
}
subparts.rmenu.2 = TMENU
subparts.rmenu.2 {
NO {
linkWrap = <div class="l2">|</div>
20 = TEXT
20.text.field = title
}
ACT = 1
ACT.linkWrap = <div class="l2act">|</div>
CUR = 1
CUR < .ACT
CUR.doNotLinkIt = 1
}
[treeLevel = 0]
subparts.rmenu.entryLevel = 0
subparts.rmenu.special = directory
subparts.rmenu.special.value = 80
[end]
Ключевым является условие [treeLevel = 0] ... [end]
И не менее важная информация, которую я узнал в процессе - настройки первого меню - наследуются!
То есть показанный Вами пример можно сократить до следующего:
lib.mainmenu = COA
lib.mainmenu {
10 = TEXT
10.value = Главная
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
ATagParams = class="active"
}
}
}
}
[treeLevel = 0]
lib.mainmenu.10.typolink.ATagParams = class="active"
[end]
-=UncleByte=-
19.03.2009, 17:30
Наследуются, да, все верно.
Alex Podusov
13.04.2012, 17:59
Вот не выходит "золотой ключик", и всё тут! ))
lib.localmenu = COA
lib.localmenu {
wrap = <ul>|</ul>
10 = TEXT
10.field = title
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
ATagParams = class="active"
}
}
}
}
[treeLevel = 0]
lib.localmenu = COA
lib.localmenu {
wrap = <ul>|</ul>
10 = TEXT
10.field = title
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
10.typolink.ATagParams = class="active"
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
}
}
}
}
[end]
тут всё подставляет верно. Что делаю дальше: на странице определены: заголовок страницы "Добро пожаловать!", альтернативный заголовок "Точка отсчета", и для эксперимента добавил ещё подзаголовок "Точка отсчета1" :)
меняю title на subtitle - так и показывает "Добро пожаловать!" Кэши где только ни чистил. Далее. 10.field = title меняю на 10.value = title - теперь показывает title, то есть с кэшем всё в порядке, он ни при чем.
-=UncleByte=-
13.04.2012, 18:26
Можно попробовать добавить lib.localmenu.10.allStdWrap.insertData = 1
Alex Podusov
13.04.2012, 23:04
Прошу прощения, немного не дописал...
если в первом блоке пишу field = title, а для [treeLevel = 0] пишу field = subtitle - всегда показывает только значение поля title, и для внутренних, и для корневой страницы
а если для внутренних пишу value = внутренние а в [treeLevel = 0] пишу value = главная - то в этом случае да, все нормально, для внутренних страниц в этом месте пишет "внутренние", а для корневой - "главная".
Может я чего-то не понимаю...
вот конфиг:
lib.localmenu = COA
lib.localmenu {
wrap = <ul>|</ul>
10 = TEXT
10.value = Точка отсчета
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
ATagParams = class="active"
}
}
}
}
[treeLevel = 0]
lib.localmenu = COA
lib.localmenu {
wrap = <ul>|</ul>
10 = TEXT
10.value = Точка отсчета
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
10.typolink.ATagParams = class="active"
20 = HMENU
20 {
1 = TMENU
1 {
NO {
linkWrap = <li>|</li>
}
ACT = 1
ACT {
linkWrap = <li>|</li>
}
}
}
}
[end]
# Lib's
lib.imgtitle = TEXT
lib.imgtitle.value = Территория творчества
lib.searshform = TEXT
lib.searshform.value = ФОРМА
lib.mytitle = TEXT
lib.mytitle.field = title
lib.copiright = HTML
lib.copiright.value = © 2009-2012, Сергиев Посад
# Default PAGE object:
page = PAGE
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page
не стал заморачиваться с полем title в менюшке - поставил value, надо будет - не сложно и в конфиге поменять. Но настала другая пробдема.
lib.imgtitle, lib.searshform и lib.copiright прекрасно выводят свои значения.
А вот lib.mytitle - ну ни в какую не хочет!!! lib.mytitle - без ошибки, скопировал из разметки.
-=UncleByte=-
14.04.2012, 09:56
А если в случае с field для начала написать 10.field > и только потом присвоить 10.field = subtitle?
Alex Podusov
14.04.2012, 13:33
А если в случае с field для начала написать 10.field > и только потом присвоить 10.field = subtitle?
хех, пробовал и такой вариант - не выходит каменный цветок. Я вот думаю, может собака зарыта под тем, что для корневой страницы один и тот же объект указывается два раза... Хотя это же конфиг, вроде бы для одних и тех же параметров более ранние значения затираются более поздними. Однако есть у меня такая мысль, что тот же конфиг берется, и построчно выполняется? тогда не создаются ли два COA для корневой страницы?
Но с этим я потом поэкспериментирую. Это не так важно - заменил вывод из nav_title ручным вводом.
Вот такая ситуевина:
lib.mytitle = TEXT
lib.mytitle.field = titleне хочет ничего выводить, и всё тут! в том, что область разметки работает, меня убеждает такое действо:
lib.mytitle = TEXT
lib.mytitle.value = Заголовок 1выводит в нужном месте "Заголовок 1". Вот в чем может быть загвоздка? Что я упустил из виду? В шаблоне из включений только CSS Styled Content
Вот что пишет про это поле темплавуаля для DS:Заголовк страницы (field_title)
"Укажите блок заголовка"
введенное/вычисленное значение будет приведено к целому
введенное/вычисленное значение будет передано в объект html [код HTML будет отображен как есть]
введенное/вычисленное значение будет помещено в обертку
Преднастройка для элемента:
TypoScript Object Path
Позиционирование столбцов:
Normal [0]
TypoScript:
будет использована структура TS lib.mytitle, определенная внутри элемента <TypoScriptObjPath>
и для ТОЛокальная обработка XML:
ERROR: The input content failed XML parsing:
93 bytes
The element has no children!
Используется в: Используется в 1 элементах
Alex Podusov
16.04.2012, 15:20
Ха!
Путем многочасовых перекуров и метода ненаучного тыка вывел, что в моем случае почему-то конструкция lib.mytitle = TEXT
lib.mytitle.field = title не работает в принципе. Рабочей оказалась только конструкция lib.mytitle = TEXT
lib.mytitle.data = page:titleЭто касается любых полей и данных, которые я пытался вытащить подобным образом. При этом: в этом конфиге lib.localmenu = COA
lib.localmenu {
wrap = <ul>|</ul>
10 = TEXT
10.value = Точка отсчета
10.typolink.parameter.data = leveluid:0
10.wrap = <li>|</li>
.............
в таком виде выводит указанный текст. Однако если я пишу 10.field = какое_нибудь_полекакое бы я поле ни указал для вывода - выводит ВСЕГДА заголовок страницы. И только 10.data = page:nav_title - дало желаемый результат.
Может кто подсказать, в чем дело, что я не могу получить значение поля обычным путем, как делал это ранее?
И почему в одном месте .field = ничего не выводит в любом случае, а в COA выводит, хоть и совсем не то?
-=UncleByte=-
16.04.2012, 15:59
Странно конечно. Но хорошо что удалось разобраться.
Локальная обработка XML:
ERROR: The input content failed XML parsing:
93 bytes
The element has no children!
Используется в: Используется в 1 элементах
к слову сказать, иногда замечал, что при ремаппинге или еще каком обновлении шаблона через TV не всегда обновляется xml. приходится ручками править.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot