Nummeriertes Menü

Übermittlung Ihrer Stimme...
Bewertungen: 4.9 von 5. 11 Stimme(n).
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.

Dieses Beispiel erstellt ein Menü bei dem die einzelnen Punkte fortlaufend nummeriert ausgegeben werden.

Das kann bei Seiten die eine strukturierte Übersicht benötigen nützlich sein.

 

 

lib.menu=HMENU
lib.menu.1=TMENU
# hier expAll evtl auf 1 setzen wenn das Menü immer alle Unterpunkte anzeigen soll
lib.menu.1.expAll=0
lib.menu.1.wrap=<ul>|</ul>
lib.menu.1.NO{
         # füllen der verwendetetn Register
  before.cObject=LOAD_REGISTER
  before.cObject{
    	  # Führende 0 für falls noch weniger als 10 Menüpunkte ausgegeben wurden
    leadingZero.cObject=TEXT
    leadingZero.cObject{
      value=0
      if.value=9
      if.isLessThan.cObject=TEXT
      if.isLessThan.cObject{
        value={register:mainMenuNumber}
        insertData=1
      }
    }
    		# Counter der die Hauptmenüpunkte zählt
    mainMenuNumber.cObject=TEXT
    mainMenuNumber.cObject{
      value={register:mainMenuNumber}+1
      insertData=1
    }
    mainMenuNumber.prioriCalc=intval
    		# initialisieren des Counters für die 2. Ebene
    subMenuNumber<lib.menu.1.NO.before.cObject.mainMenuNumber
    subMenuNumber.cObject.value=0
    		# initialisieren des Counters für die 3. Ebene
    subSubMenuNumber<lib.menu.1.NO.before.cObject.mainMenuNumber
    subSubMenuNumber.cObject.value=0
  }
  	# Die Nummerierung soll innerhalb des Link tags erscheinen
  ATagBeforeWrap=1
  linkWrap={register:leadingZero}{register:mainMenuNumber} |
  	# insertData auf den allStdWrap setzen, da linkWrap keine stdWrap unterstützung hat.
  allStdWrap.insertData=1
  wrapItemAndSub=<li>|</li>
}
lib.menu.2<lib.menu.1
lib.menu.2.NO{
  before.cObject{
    	  # Counter für die 1. Ebene hier nicht mehr inkrementieren
    mainMenuNumber.cObject.value={register:mainMenuNumber}
    		# Führende 0 für die 2. Ebene
    leadingZero2<lib.menu.2.NO.before.cObject.leadingZero
    leadingZero2.cObject.if.isLessThan.cObject.value={register:subMenuNumber}
    		# Counter für die 2. Ebene hier inkrementieren
    subMenuNumber.cObject.value={register:subMenuNumber}+1
  }
  linkWrap={register:leadingZero}{register:mainMenuNumber}.{register:leadingZero2}{register:subMenuNumber} |
}
lib.menu.3<lib.menu.2
lib.menu.3.NO{
  before.cObject{
    	  # Führende 0 für die 3. Ebene
    leadingZero3<lib.menu.2.NO.before.cObject.leadingZero
    leadingZero3.cObject.if.isLessThan.cObject.value={register:subSubMenuNumber}
        # Counter für die 2. Ebene hier nicht mehr inkrementieren
    subMenuNumber.cObject.value={register:subMenuNumber}
    		# Counter für die 3. Ebene hier inkrementieren
    subSubMenuNumber.cObject.value={register:subSubMenuNumber}+1
  }
  linkWrap={register:leadingZero}{register:mainMenuNumber}.{register:leadingZero2}{register:subMenuNumber}.{register:leadingZero3}{register:subSubMenuNumber} |
}

 

Anzeigebeispiel nummeriertes Menü



Comments


marku, 16-10-09 21:51:
Bin noch ein neuling...

Das Menü gefällt mir, nur wie bekomme ich es nun in einen Platzhalter?

besten dank für eure hilfe..
siteway.de, 23-11-09 15:30:
Eine viel einfachere Methode ist folgendes:

NO.wrapItemAndSub = <li>Nummer {register:count_HMENU_MENUOBJ}: |</li>
NO.wrapItemAndSub.insertData = 1
Johannes, 27-11-09 14:52:
@siteway.de: Das klappt leider nur für Menus mit einer Ebene, da die Unterpunkte mitgezählt werden.

Ich benutze immer diese etwas reduzierte Version:

lib.mainmenu = COA
lib.mainmenu {
10 = HMENU
10 {
entryLevel = 0
1 = TMENU
1 {
noBlur = 1
expAll = 1
wrap = <ul>|</ul>
NO = 1
NO {
before.cObject= LOAD_REGISTER
before.cObject {
mainMenuNumber {
cObject=TEXT
cObject{
value={register:mainMenuNumber}+1
insertData=1
}
prioriCalc=intval
}
nr.stdWrap.dataWrap = 000000{register:mainMenuNumber}
nr.substring = -2
}
wrapItemAndSub = <li id="nav-{register:nr}">|</li>
wrapItemAndSub.insertData = 1
}
ACT < .NO
ACT.wrapItemAndSub = <li id="nav-{register:nr}" class="active">|</li>
}
2 < .1
2.NO.before.cObject.mainMenuNumber.cObject.value = {register:mainMenuNumber}
2.ACT.before.cObject.mainMenuNumber.cObject.value = {register:mainMenuNumber}
}
}
Felix, 29-06-10 09:29:
Danke, Johannes.

Genau das hab ich gesucht. :)
You made my day!

LG Felix
Lukas, 28-04-14 16:31:
Vielen Dank,

das war genau was ich gesucht habe. Allerdings funktioniert das mit der "leadingZero" nicht. Egal wie ich es drehe sobald ein Wert 0 als value im TEXT cObj ankommt wird das gesamte Element nicht mehr ausgegeben... Nicht kriegsentscheidend aber nervige TS Eigenart.

Grüße Lukas

Kommentar hinzufügen

* - Pflichtfeld

*



*
*

Top 10 Updates

Kontakt geändert am  21-Jul-2013 11:33:01
Kontakt geändert am  21-Jul-2013 11:32:56
Nützliche Links geändert am  24-Apr-2013 08:31:02
Login geändert am  09-Sep-2010 11:31:35
Schöne Schriften mit Google Font API geändert am  20-May-2010 16:36:59
TS basierte Searchbox für Indexed Search geändert am  18-May-2010 18:26:54
TYPO3 SEO geändert am  30-Apr-2010 09:43:20
Suchmaschinenfreundliche grafische Überschriften in TYPO3 geändert am  30-Apr-2010 09:33:56
Erstellen eines einfachen Infocenters mit TYPO3  geändert am  17-Nov-2009 12:11:22
Funktionierendes Section Menu mit TemplaVoila geändert am  05-May-2009 12:42:40

Latest comments

30-Oct-2014 20:10:40
Jan Clausen schrieb: ewweewr
Guestbook
27-Oct-2014 15:42:16
Sacha Vorbeck schrieb: Ab TYPO3 6.2 gibt es eine replace Funktion mit optionSplit, die bei CONTENT/renderObj nützlich sein...
Das CONTENT Objekt
25-Sep-2014 08:22:36
Zhiika Zhiika schrieb: I was basically witnang to know if you ever considered replacing the design of your website? It is...
Random content
English
Suche: