[Typo3] Hierarchical section index?
Peter Klein
peter at umloud.dk
Mon Nov 21 22:45:05 CET 2005
Hi Christian. Here's a version 100% Typoscript ;)
I also added the same numbering to the headers.
Let me know if you find it usefull.
# Replaces standard section menu with a numbered version
tt_content.menu.20.3 >
tt_content.menu.20 {
3 < styles.content.get
3.wrap = <div class="csc-menu csc-menu-3">|</div>
3.select.andWhere = sectionIndex!=0
3.select.pidInList.override.field = pages
3.renderObj = CASE
3.renderObj {
key.field = header_layout
default = COA
default {
stdWrap.fieldRequired = header
10 = LOAD_REGISTER
10.L1Counter.cObject = TEXT
10.L1Counter.cObject.data = register:L1Counter
10.L1Counter.cObject.wrap = |+1
10.L1Counter.prioriCalc = intval
10.L2Counter = 0
10.L3Counter = 0
10.L4Counter = 0
10.L5Counter = 0
20 = TEXT
20.field = header
20.trim = 1
20.htmlSpecialChars = 1
20.dataWrap = <p class="csc-section">{register:L1Counter} |</p>
20.typolink.parameter.field = pid
20.typolink.section.field = uid
}
1 < .default
2 < .default
2.10.L2Counter >
2.10.L2Counter.cObject < .2.10.L1Counter.cObject
2.10.L2Counter.cObject.data = register:L2Counter
2.10.L2Counter.prioriCalc = intval
2.10.L1Counter >
2.20.dataWrap = <p
class="csc-section">{register:L1Counter}.{register:L2Counter} |</p>
3 < .2
3.10.L3Counter >
3.10.L3Counter.cObject < .3.10.L2Counter.cObject
3.10.L3Counter.cObject.data = register:L3Counter
3.10.L3Counter.prioriCalc = intval
3.10.L2Counter >
3.20.dataWrap = <p
class="csc-section">{register:L1Counter}.{register:L2Counter}.{register:L3Counter} |</p>
4 < .3
4.10.L4Counter >
4.10.L4Counter.cObject < .4.10.L3Counter.cObject
4.10.L4Counter.cObject.data = register:L4Counter
4.10.L4Counter.prioriCalc = intval
4.10.L3Counter >
4.20.dataWrap = <p
class="csc-section">{register:L1Counter}.{register:L2Counter}.{register:L3Counter}.{register:L4Counter} |</p>
5 < .4
5.10.L5Counter >
5.10.L5Counter.cObject < .5.10.L4Counter.cObject
5.10.L5Counter.cObject.data = register:L5Counter
5.10.L5Counter.prioriCalc = intval
5.10.L4Counter >
5.20.dataWrap = <p
class="csc-section">{register:L1Counter}.{register:L2Counter}.{register:L3Counter}.{register:L4Counter}.{register:L5Counter} |</p>
}
}
And a little bonus! ;)
# Changes the standard headers, so they got the same numbers as shown on the
section TOC
lib.stdheader.10.1 >
lib.stdheader.10.1 = COA
lib.stdheader.10.1 {
10 = LOAD_REGISTER
10.H1Counter.cObject = TEXT
10.H1Counter.cObject.data = register:H1Counter
10.H1Counter.cObject.wrap = |+1
10.H1Counter.cObject.if.isTrue.current = 1
10.H1Counter.prioriCalc = intval
10.H2Counter = 0
10.H3Counter = 0
10.H4Counter = 0
10.H5Counter = 0
20 = TEXT
20.current = 1
20.insertData = 1
20.fontTag =
<h1{register:headerStyle}{register:headerClass}>{register:H1Counter}: |</h1>
}
lib.stdheader.10.2 >
lib.stdheader.10.2 < lib.stdheader.10.1
lib.stdheader.10.2 {
10.H2Counter >
10.H2Counter.cObject < .10.H1Counter.cObject
10.H2Counter.cObject.data = register:H2Counter
10.H2Counter.prioriCalc = intval
10.H1Counter >
20.fontTag =
<h2{register:headerStyle}{register:headerClass}>{register:H1Counter}.{register:H2Counter}: |</h2>
}
lib.stdheader.10.3 >
lib.stdheader.10.3 < lib.stdheader.10.2
lib.stdheader.10.3 {
10.H3Counter >
10.H3Counter.cObject < .10.H2Counter.cObject
10.H3Counter.cObject.data = register:H3Counter
10.H3Counter.prioriCalc = intval
10.H2Counter >
20.fontTag =
<h3{register:headerStyle}{register:headerClass}>{register:H1Counter}.{register:H2Counter}.{register:H3Counter}: |</h3>
}
lib.stdheader.10.4 >
lib.stdheader.10.4 < lib.stdheader.10.3
lib.stdheader.10.4 {
10.H4Counter >
10.H4Counter.cObject < .10.H3Counter.cObject
10.H4Counter.cObject.data = register:H4Counter
10.H4Counter.prioriCalc = intval
10.H3Counter >
20.fontTag =
<h4{register:headerStyle}{register:headerClass}>{register:H1Counter}.{register:H2Counter}.{register:H3Counter}.{register:H4Counter}: |</h4>
}
lib.stdheader.10.5 >
lib.stdheader.10.5 < lib.stdheader.10.4
lib.stdheader.10.5 {
10.H5Counter >
10.H5Counter.cObject < .10.H4Counter.cObject
10.H5Counter.cObject.data = register:H5Counter
10.H5Counter.prioriCalc = intval
10.H4Counter >
20.fontTag =
<h5{register:headerStyle}{register:headerClass}>{register:H1Counter}.{register:H2Counter}.{register:H3Counter}.{register:H4Counter}.{register:H5Counter}: |</h5>
}
"christian reiter" <cr at n-o-s-p-a-m-cxd.de> wrote in message
news:mailman.1.1132597272.2936.typo3-english at lists.netfielders.de...
> Hi Peter,
>
> Thank you for the tip. I can get numbering with the LOAD_REGISTER method
> and
> it is a useful tip. however since I also needed to get the nested tags and
> numbering in several levels I have opted to solve this with a small
> extension fot the Menu/Sitemap content type.
> Thanks,
>
> christian
>
> "Peter Klein" <peter at umloud.dk> schrieb im Newsbeitrag
> news:mailman.1.1132510899.11191.typo3-english at lists.netfielders.de...
>> > But making a sectioned TOC should be easier, as you can create
> 'counters'
>> using LOAD_REGISTER. Then you create a CASE object based on the header
> type,
>> and create a counter for each header type.
>>
>
>
More information about the TYPO3-english
mailing list