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=1525)

Дылгеров Ц.В. 20.06.2006 14:25

меню в подразделе
 
На сайте есть куча разделов.
Каждый раздел снабжен шаблоном у которого отмечена галочка в поле root. Этот шаблон имеет пустые поля setup и constants. Зато включает один универсальный шаблон, находящийся в системной папке. То есть процедура создания раздела проста - создаю пустой шаблон, ставлю галочку в поле root и поля clear constants, clear setup и инклудю универсальный шаблон из системной папки. В итоге получаем при заходе в страницу раздела новое меню (так как шаблон видит root раздела благодаря галочке и строит меню для раздела, а не для главного корня сайта).
Возникает проблема - indexed search не видит эти разделы и надо прописывать все разделы в строке pidList для нормального поиска по всем разделам.
Это становится муторным если количество разделов превышает 20. У меня как раз такая ситуация.

Поэтому возникла задача - написать шаблон, опять же универсальный, но который не является root-овым. Этот шаблон должен строить меню считая корнем именно корень подраздела.

Есть заготовка - простите за примитив
page = PAGE
page.20 = HMENU
page.20.special = directory
page.20.special.value.value = (uid - раздела)

Задача как пометить в special.value код раздела, если мы находимся внутри раздела.
Или может какие другие решения?

Зашел на http://t3chat.think-open.org/irc.cgi - там сказали надо использовать conditions - так и ничего не понял. Еще сказали можно написать root-template и инклудить его - но ведь не сработает. Очевидно не поняли моего английского. В конце концов посоветовали прочитать Modern Template - что совсем смутило меня.

Beforehand gratefull for answers.

void 20.06.2006 17:34

А чем не устраивает вообще без дополнительных шаблонов, а в главном прописать нечто вроде
Код:

[PIDupinRootline = 117,118]
lib.subMenu.entryLevel = 3
[else]
lib.subMenu.entryLevel = 1
[end]

?
А загнать в special.value данные, по-видимому, можно через
yourmenu.special.value.data = leveluid:-1
или как-то наподобие...

Дылгеров Ц.В. 21.06.2006 05:02

Спасибо - тоже вариант. Получается можно сделать один шаблон на все страницы сайта.

leveluid: -1 не пойдет - например корень подраздела на 6 уровне, а мы вошли в 8 уровень этого подраздела - меню будет строиться на 8 уровне (-1 - как я понял - это сама текущая страница)
leveluid: 0 тоже - так как у шаблона нет галочки в root

Буду пробовать еще вариант с константами - хотя получается разница небольшая - константы будут раскиданы по дереву, а условие (ваш вариант) - в одном шаблоне

Дылгеров Ц.В. 21.06.2006 12:54

Получилось! Делаю один шаблон на весь сайт!
page = PAGE
page.20 = HMENU
page.20.special = directory
page.20.special.value = {$localuid}
page.20.1 = TMENU
page.20.1.NO = <div>|</div>
page.20.1.ACT = <div>|</div>

а местах раздела ставлю одну строку в константах
localuid = uid-раздела

Дылгеров Ц.В. 23.06.2006 07:27

Цитата:

Сообщение от Дылгеров Ц.В.
Получилось! Делаю один шаблон на весь сайт!
page = PAGE
page.20 = HMENU
page.20.special = directory
page.20.special.value = {$localuid}
page.20.1 = TMENU
page.20.1.NO = <div>|</div>
page.20.1.ACT = <div>|</div>

а местах раздела ставлю одну строку в константах
localuid = uid-раздела

млин - оказывается не работает второй уровень в этом случае:
page = PAGE
page.20 = HMENU
page.20.special = directory
page.20.special.value = {$localuid}
page.20.1 = TMENU
page.20.1.NO = <div>|</div>
page.20.1.ACT = <div>|</div>
page.20.2 = TMENU
page.20.2.NO = <div>|</div>
page.20.2.ACT = <div>|</div>

.1 - работает на любом уровне, а .2 - только на втором уровне root.

рекомендуют в http://lists.netfielders.de/pipermai...ly/009046.html
lib.leftmenu =HMENU
lib.leftmenu.entryLevel = 1
lib.leftmenu.1 =TMENU
lib.leftmenu.1 {
NO.allWrap =<div class="leftnav">|</div>
ACT =1
ACT.allWrap =<div class="leftnav_act">|</div>
}
lib.leftmenu.2 =TMENU
lib.leftmenu.2 {
NO.allWrap =<div class="leftnav1">|</div>
ACT =1
ACT.allWrap =<div class="leftnav1">|</div>
}
- но здесь надо шаблон инклудить - глобального шаблона не получится - но в принципе это не хлопотно - разница не большая
но и в этом случает второй уровень не срабатывает если например подкорень на 5 уровне
Будем копать...

Дылгеров Ц.В. 23.06.2006 07:32

по моему нашел http://lists.netfielders.de/pipermai...er/004512.html
что то тут фрицы бачут непонашему однако суть ясна: "Doch kein Bug ... sondern ein "non-feature" - кароче это не баг, а не поддерживается - жаль в tsref не прописали.
Будем пробовать http://www.libelle.at/kraftb/sp_dir_expand.patch
Не работает ссылка.

Читаем http://bugs.typo3.org/view.php?id=633 - там два патча - какой выбрать?

Выбираем второй - для Typo3-3.8. Смотрим diff отчет - к сожалению строки не совпадают - непонятно почему. Руками вношу и удаляю строки в два файла. Ура - шаблоны работают!

Дылгеров Ц.В. 29.06.2007 05:43

Интересно почему они не внедрили до сих пор этот полезный патч? У меня сайт построен на этой эффективной фиче. Перешел на FR с 3.8 и с утра сыпятся звонки что нет подменю второго уровня в разделах портала. Пришлось лезьть на форум, находить этот патч и ставить.


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

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