VF DSL 468x60

Menu mit rekursiven Zähler für Unterseiten

Submitting your vote...
Rating: 3.3 of 5. 6 vote(s).
Click the rating bar to rate this item.

In diesem Menü soll die Anzahl der der direkten Unterseiten und die gesamte Anzahl der Seiten unter jeder Zeile angezeigt werden.

Beispiel:

root (13/3)
+-Seite (3/2)
| +-Seite (1/1)
| | +-Seite (0/0)
| +-Seite (0/0)
+-Seite (6/3)
| +-Seite (3/2)
| | +-Seite (0/0)
| | +-Seite (1/1)
| | +-Seite (0/0)
| +-Seite (0/0)
| +-Seite (0/0)
+-Seite (1/1)
  +-Seite (0/0)

Die erste Zahl stellt die Anzahl aller Seiten unter dieser Seite dar.
Die zweite Zahl stellt die Anzahl der direkten Unterseiten dar.

Dies kann erreicht werden, indem man eine Liste von Seiten ids,für die Unterseiten und die Unterseiten der Unterseiten erstellt.
In diesem Beispiel wird die Liste für jede Ebene in einem seperaten Register gespeichert.

 

lib.subcountmenu = COA
lib.subcountmenu {
  10 = HMENU
  10.1 = TMENU
  10.1 {
    expAll = 1
    wrap = <ul>|</ul>
    NO {
      stdWrap.cObject = COA
      stdWrap.cObject {
        				# Here we create a couple register vars which contains a accumulated list of all page ids from each level
        10 = LOAD_REGISTER
        				# 1st we collect the page ids of the current level
        10.level1uids.cObject = COA
        10.level1uids.cObject {
          					# We select the ids of pages that have the id of the current page as parent page.	
          					# Except if the page has the "Hide in menu" checkbox is enabled or the pagetype is
          					# either "Not in menu" (5) or "Backend User Section" (6)
          10 = CONTENT
          10.table = pages
          10.select.pidInList.data = field:uid
          10.select.where = nav_hide!=1 AND doktype!=5 AND doktype!=6
          					# Each page id is rendered with a comma at the end, creating a commaseperated list of page ids
          10.renderObj = TEXT
          10.renderObj.field = uid
          10.renderObj.wrap = |,
          					# Finally we add the id of the current page to the list.
          20 = TEXT
          20.data = field:uid	
        }
        				# For the 2nd level we use the list of page ids we generated for the current level
        10.level2uids.cObject < .10.level1uids.cObject
        10.level2uids.cObject.10.select.pidInList.data = register:level1uids
        				# And finally we add the 1st list of ids to the 2nd list.
        10.level2uids.cObject.20.data = register:level1uids
         
        				# For the 3rd level, we repeat the procedure from the 2nd level.
        				# If your site has more than 3 levels, you should repeat the procedure.
        10.level3uids.cObject < .10.level1uids.cObject
        10.level3uids.cObject.10.select.pidInList.data = register:level2uids
        				# And finally we add the 2st list of ids to the 3rd list.
        10.level3uids.cObject.20.data = register:level2uids
         
        				# Here we count the pages, based on the id lists we created and stored in the register var "level3uids"
        				# Note: If you have created more levels in the LOAD_REGISTER object, you should change "level3uids" to the last level you created.
        20 = TEXT
        20.numRows.table = pages
        20.numRows.select.pidInList.data = register:level3uids
        20.numRows.select.where = nav_hide!=1 AND doktype!=5 AND doktype!=6
        				# And output the page title (Using dataWrap to save some codelines ;) ) along with the count of all pages beneath.
        20.dataWrap = {field:title} [|/
         
        				# Here we count and output the number of direct children.
        30 = TEXT
        30.numRows.table = pages
        30.numRows.select.pidInList.field = uid
        30.numRows.select.where = nav_hide!=1 AND doktype!=5 AND doktype!=6
        30.wrap = |]
      }
      wrapItemAndSub = <li>|</li>
    }
  }
  	# Menulevel 2+3 is just copies of the 1st level.
  10.2 < .10.1
  10.3 < .10.1
}
page.100 < lib.subcountmenu

 

Dieses Snippet wurde von Peter Klein eingesendet



Comments


No comments

Add comment

* - required field

*



*
*

Top 10 Updates

Erstellen eines einfachen Infocenters mit TYPO3  geändert am  17-Nov-2009 11:11:22
Funktionierendes Section Menu mit TemplaVoila geändert am  05-May-2009 10:42:40
"Nicht im Menü" in Sitemap anzeigen geändert am  05-May-2009 10:12:24
Implementation des DHTML Menüs von brainjar.com  geändert am  01-Feb-2009 13:01:36
Beispiel DHTML Menü geändert am  01-Feb-2009 12:47:38
Anzeigebeispiel für dynamische Bild Masken geändert am  16-Dec-2008 15:11:25
Links geändert am  11-Dec-2008 10:12:33
Nützliche Links geändert am  11-Dec-2008 10:05:56
Transparente PNG's in IE5/6 ohne JavaScript geändert am  04-Oct-2008 12:28:14
Typoscript Eigenschaften mit stdWrap erweitern geändert am  13-Jun-2008 14:16:12

Latest comments

05-Mar-2010 10:15:12
andi schrieb: Und wie funktioniert das Ganze bei Seiten mit TemplaVoila?
Template abhängig von Spalteninhalt
28-Feb-2010 10:16:39
Dirk schrieb: Hello, this ts is awsome. very great! but is it possible to insert a 1px line before every...
4 Spalten Menu
24-Feb-2010 16:18:12
fragolina schrieb: tolle Sammlung! hat mir schon mehrmals geholfen ;-) Vielen Dank
Snippets
English
Suche: