[TYPO3-german] Nummerierung Überschriften und Inhaltsverzeichnis

Alex Ru alex at ruof.org
Fri Sep 5 09:20:56 CEST 2014


Hallo Dieter,

Deine Angaben sind mir noch zu hoch. Ich habe seit V3.8 nichts mehr mit Typo3 gemacht und bin da absolut nicht mehr drin in Typoscript.

Aber folgende Angabe hat mich zur Lösung von meinem Problem gebracht und reicht mir vollkommen aus, da dies vorerst nur für mich selbst Gedacht ist. Die Seite soll einfach zur Erstellung von Schulungsinhalten genutzt werden, die ich dann bei einer Schulung im Hause aufrufe und so die Inhalte entsprechend einfach aufrufen und springen kann. Natürlich sollte der Kunde das dann in gerduckter Form auch erhalten können. Deshalb das Inhaltsverzeichnis für die Seite, die immer ein abgeschlossenes Kapitel sein soll. Das erste Element ist immer das Inhaltsverzeichnis.

> styles.content.get, dass erweitert wurde um
>         andWhere = CType.= ('header', [weitere CType-Aufzählung].)

Danke für den Hinweis.

Ich habe in meinem Code einfach folgendes erweitert:
-->  3.select.andWhere = sectionIndex!=0

wird zu
-->   3.select.andWhere = sectionIndex!=0 AND (CType != 'div')

und schon wird der Trenner für Seitenumbruch im PDF nicht mehr mitgezählt und alle anderen Elemente werden entsprechend dem Überschriftentyp gezählt.

Hier mein Vollständiger Code (ausgelagert in 2 Dateien). Angewendet nur auf Seiten mit doktype=55 (spezieller Seitentyp dafür). Überschriftstyp 6 angelegt um auch nicht gezählt zu werden.

ttcontent_nr.ts
<code>
[globalVar = TSFE:page|doktype = 55]
// WICHTIG! sonst geht es nicht
//
lib.stdheader.98>
lib.stdheader.99>
//
// Ende WICHTIG!

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  
  10.H6Counter = 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>
}
lib.stdheader.10.6 >
lib.stdheader.10.6 < lib.stdheader.10.5
lib.stdheader.10.6 {
  10.H6Counter >
  10.H6Counter.cObject < .10.H5Counter.cObject
  10.H6Counter.cObject.data = register:H6Counter
  10.H6Counter.prioriCalc = intval
  10.H5Counter >
  20.fontTag = <h6 {register:headerStyle}{register:headerClass}>|</h6>
}
[ELSE]
lib.stdheader.10 {
	6 < lib.stdheader.10.1
	6.dataWrap = <h6 class="csc-firstHeader">|</h6>	
}
[end]
</code>

und menue_nr.ts
<code>
[globalVar = TSFE:page|doktype = 55]
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 AND (CType != 'div')
  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}&nbsp|</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}&nbsp|</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}&nbsp|</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}&nbsp|</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}&nbsp|</p>
  }
}
[end]
</code>

Gruss 
Alex


More information about the TYPO3-german mailing list