Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Сложне меню + javascript (http://forum.typo3.ru/showthread.php?t=7778)

El_desperado 19.06.2009 16:41

Сложне меню + javascript
 
Есть большое меню страниц такого вида:
1 уровень
2 уровень
3 уровень
3 уровень
3 уровень
2 уровень
2 уровень
3 уровень
3 уровень
1 уровень
2 уровень
3 уровень
3 уровень
Нужно динамически добавить уникальный id для каждого блока уровня следующим образом:
1 уровень
<div id="уникальный id для этого блока 2го уровня">
2 уровень
<div id="уникальный id для этого блока 3го уровня">
3 уровень
3 уровень
3 уровень
</div>
2 уровень
2 уровень
<div id="уникальный id для этого блока 3го уровня">
3 уровень
3 уровень
</div>
</div>
1 уровень
<div id="уникальный id для этого блока 2го уровня">
2 уровень
<div id="уникальный id для этого блока 3го уровня">
3 уровень
3 уровень
</div>
</div>
Код TS который уже есть:
lib.menu = COA
lib.menu {
stdWrap.insertData = 1
20 = HMENU
20.special = directory
20.special.value = 8
20.1 = TMENU
20.1 {
expAll = 1
NO.allWrap = <span class="cat_first_level_no"> | <br></span>
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <span class="cat_first_level_no"> | <br></span>
}
20.2 = TMENU
20.2 {
wrap = <div id="{field:header}">|</div>
expAll = 1
NO.allWrap = <span class="cat_second_level_no"> | <br></span>
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <span class="cat_second_level_no"> | <br></span>
}
20.3 = TMENU
20.3 {
wrap = <div id="{field:header}">|</div>
NO.allWrap =<span class="cat_third_level_no"> | <br></span>
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <span class="cat_third_level_no"> | <br></span>
}
}

Делается это для того что бы можно было сворачивать и разворачивать меню при помощи javascript-a.

Как это можно реализовать? И можно ли вообще? Уже весь мозг себе сломал решая эту задачу :(

Lucifer 19.06.2009 18:07

Я использовал stdWrap2.dataWrap для js меню. тут пример с jquery
Один недостаток - stdWrap2 работает только с NO. У меня не получилось сделать с ACT.

El_desperado 30.06.2009 07:13

Спасибо за помощь! Решение найдено :) Выглядит оно так:

lib.menu = COA
lib.menu {
stdWrap.insertData = 1
20 = HMENU
20.special = directory
20.special.value = 8
20.1 = TMENU
20.1 {
expAll = 1
NO.allWrap = <span class="cat_first_level_no"> | <br></span>
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <span class="cat_first_level_no"> | <br></span>
}
20.2 = TMENU
20.2 {
expAll = 1
NO.stdWrap2.dataWrap = <div class="cat_second_level_no"><a href="index.php?id={field:uid}" onfocus="blurLink(this);">|</a><br></div><div>
NO.stdWrap.htmlSpecialChars = 1
NO.doNotLinkIt = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.doNotLinkIt = 1
ACT.stdWrap2.dataWrap = <div class="cat_second_level_no"><a href="index.php?id={field:uid}" onfocus="blurLink(this);">|</a><br></div><div>
}
20.3 = TMENU
20.3 {
expAll = 1
wrap = |</div>
NO.allWrap =<span class="cat_third_level_no"> | <br></span>
NO.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <span class="cat_third_level_no"> | <br></span>
}
}

Красным выделен блок оборачивающий 3-ий уровень меню именно так как показано на схеме выше.
Надеюсь кому то этот прием пригодится! :)

Lucifer 30.06.2009 11:20

А stdWrap2 заработал в ACT? У меня не работал :(

El_desperado 30.06.2009 13:45

Похоже что заработал.
Кстати. Забыл добавить что в таком меню не работает RealUrl так как ссылки писаные в ручную :(


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

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