Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 03.04.2007, 18:38   #1
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
Question Показывать или не показывать раздели в меню на определенном уровне

Нужно написать TypoScript для меню (многоуровневое) так, чтобы он показывал или не показывал, раздели в меню на определенном мною уровне.

К примеру, есть:
===================
= Menu 1
== Menu 1.1
== Menu 1.2
=== Menu 1.2.1
=== Menu 1.2.2
=== Menu 1.2.3
=== Menu 1.2.4
== Menu 1.3
== Menu 1.4
= Menu 2
== Menu 2.1
== Menu 2.2
== Menu 2.3
=== Menu 2.3.1
=== Menu 2.3.2
=== Menu 2.3.3
=== Menu 2.3.4
== Menu 2.4
= Menu 3
== Menu 3.1
== Menu 3.2
== Menu 3.3
== Menu 3.4
= Menu 4
............
===================

Мне нужно, чтобы в разделе "= Menu 1" третий уровень "=== Menu 1.2.1" показывался, а вот в разделе "= Menu 2" третий уровень "=== Menu 2.3.1" не показывался.

Прошу помощи в решении это задачи
thebat вне форума   Ответить с цитированием
Старый 03.04.2007, 19:24   #2
Дмитрий Самойлов
Продвинутый
 
Регистрация: 28.03.2005
Сообщений: 78
Отправить сообщение для Дмитрий Самойлов с помощью ICQ Отправить сообщение для Дмитрий Самойлов с помощью Skype™
По умолчанию

а не подойдет ли выставить тип "Не в меню" для тех страниц, которые Вы не хотите отображать в меню
Дмитрий Самойлов вне форума   Ответить с цитированием
Старый 03.04.2007, 20:16   #3
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Цитата:
Сообщение от Дмитрий Самойлов Посмотреть сообщение
а не подойдет ли выставить тип "Не в меню" для тех страниц, которые Вы не хотите отображать в меню
..., нет, не подойдет, потому что этот третий уровень будет использован в другом меню которое будет размещено в другой части шаблона.
thebat вне форума   Ответить с цитированием
Старый 03.04.2007, 20:59   #4
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

1. По-програмистски
[PIDinRootline = menu1]
expAll = 1
[global]
2. Против лома нет приема - задайте разные конфигурации меню для разных веток (просто разные шаблоны)
Дошло, что задачу можно понять двумя способами, и кажется сначала понял неправильно - что в первом разделе надо раскрыть все подразделы, а не что во втором их нужно спрятать. Тогда наоборот там collapse = 1 для второго уровня нужного PID. Ну а второй способ универсальный, просто конфигурируете только 2 уровня, а третий - отдельным меню.

Последний раз редактировалось PhilD; 03.04.2007 в 21:39
PhilD вне форума   Ответить с цитированием
Старый 03.04.2007, 21:38   #5
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Цитата:
Сообщение от PhilD Посмотреть сообщение
1. По-програмистски
[PIDinRootline = menu1]
expAll = 1
[global]
Спасибо. Из этого я что-то понял, а что-то не понял.

Вот TypoScript моего меню:
========================
temp.leftmenu = HMENU
temp.leftmenu.entryLevel = 0
temp.leftmenu.excludeUidList = 3,4
temp.leftmenu.wrap = <div>|</div>
temp.leftmenu.1 = GMENU
temp.leftmenu.1 {
NO {
XY = [10.w]+18,19
transparentColor.closest = 1
transparentBackground = 1
transparentColor= #ffffff
allWrap = <div>|</div>
5 = IMAGE
5.file = colo.gif
5.offset = 6,7
10 = TEXT
10.niceText = 0
10.text.field = nav_title // title
10.offset = 18,14
10.fontFile = arial.ttf
10.fontColor = #ff3c00
10.fontSize = 9
}

ACTIFSUB < .NO
ACTIFSUB = 1
ACTIFSUB.allWrap = <div>|</div>

ACT < .NO
ACT = 1
ACT.allWrap = <div>|</div>
}

temp.leftmenu.2 = TMENU
temp.leftmenu.2 {
wrap = <div>|</div>
NO.allWrap = <div>|</div>
NO.ATagParams = class="sub"
ACT = 1
ACT.allWrap = <div>|</div>
ACT.ATagParams = class="Act"
}

temp.leftmenu.3 = TMENU
temp.leftmenu.3 {
wrap = <div>|</div>
NO.allWrap = <div>|</div>
NO.ATagParams = class="sub"
ACT = 1
ACT.allWrap = <div>|</div>
ACT.ATagParams = class="Act"
}
========================

Давайте в месте попробуем это написать...

Куда вставить это?
[PIDinRootline = menu1]
expAll = 1
[global]

Цитата:
Сообщение от PhilD Посмотреть сообщение
2. Против лома нет приема - задайте разные конфигурации меню для разных веток (просто разные шаблоны)
Выходит это сделать невозможно?
thebat вне форума   Ответить с цитированием
Старый 03.04.2007, 21:58   #6
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

самый простой вариант - задать для второй ветки отдельный шаблон где третий уровень просто выкинут.
Или:
[PIDinRootline = menu_2_id (или только 2.3, зависит от цели )]
temp.leftmenu.2.collapse = 1
[global]
проверяйте - у меня нет 100% уверенности что условия работают с временными объектами.
PhilD вне форума   Ответить с цитированием
Старый 04.04.2007, 16:26   #7
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Для меня да, а вот для пользователя это будет проблемой, поскольку у него будет закрыт доступ к изменениям в шаблонах.

Что если пользователь самостоятельно будет добавлять дополнительную ветку или под ветку в структуре сайте?

Хочется автоматизировать этот процесс к тому же это неудобно. Он же вообще не владеет TypoScriptom.

Код:
[PIDinRootline = menu_2_id (или только 2.3, зависит от цели )]
temp.leftmenu.2.collapse = 1
[global]
..., это не работает.

Можно было бы использовать temp.leftmenu.excludeUidList ..., но тогда получится очень длинный список исключеных ID страниц, что совсем не хорошо.

Может есть какое-то другое TS решение?

Последний раз редактировалось thebat; 04.04.2007 в 17:22
thebat вне форума   Ответить с цитированием
Старый 04.04.2007, 18:55   #8
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

Если нужно, чтобы этим рулил пользователь, то таки проще делать через назначение страницам "не в меню", а для дополнительного меню в другом месте прописать принудительно включение страниц "не в меню" , и разъяснить пользователю, что страницы так прячутся только из основного меню.
PhilD вне форума   Ответить с цитированием
Старый 04.04.2007, 22:35   #9
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

..., нет!

Не в коем случае нельзя это доверять пользователю, разве уже потом. Есть задание и надо сделать так, а там уже после меня хоть, что ничуть… пускай делают как им хочется.
thebat вне форума   Ответить с цитированием
Старый 04.04.2007, 23:49   #10
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

ну а тогда можно вынести меню в отдельный подшаблон. И включать в ветке двухуровневое или трехуровневое по желанию. В верхнем включить трехуровневое. Не автоматически, зато просто.
PhilD вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как определить на каком уровне меню мы находимся? Илья Общие вопросы 10 13.06.2006 11:55


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория