TYPO3 – Inhalte dynamisch in 2 Teile aufteilen

Um mehrere Datensätze oder Menüpunkte in zwei Teile aufzuteilen, benötigt Ihr eine if-Abfrage. In dieser wird nun die Anzahl der Items gezählt und durch zwei geteilt. Hier der TYPO3 TYPOSCRIPT Code:

Code-Beispiel von typo3wizard.com:

lib.splitmenu = COA
lib.splitmenu {

  10 = HMENU
  10.special = directory
  10.special.value = 1
  10.1 = TMENU
  10.1 {
    wrap = <div>1.teil<br>|</div>
    NO {
      stdWrap.cObject = COA
      stdWrap.cObject {
        10 = TEXT
        10.field = title
        if.value.data = register:count_HMENU_MENUOBJ
        if.negate = 1
        if.isLessThan.prioriCalc=1
        if.isLessThan.cObject=TEXT
        if.isLessThan.cObject.insertData=1
        if.isLessThan.cObject.value = ({register:count_menuItems}+1)/2
        wrap = |<br>
      }
    }
  }
  20 < .10
  20.1.wrap = <div>2.teil<br>|</div>
  20.1.NO.stdWrap.cObject.if.negate >
}

Hier ein größeres Beispiel wie ich die Funktionen bei einer größeren Ausgabe eingebaut habe:

# Hier wird das Menü der Unterseiten (mit Inhaltsangabe) ersetzt
# um ein Bild aus den Seiteneigenschaften anzuzeigen
tt_content.menu.20.8 >
tt_content.menu.20.8 = COA
tt_content.menu.20.8 {
  wrap = <div class=”teaser-product-wrap”>|</div>
  
  
  10 = HMENU
  10 {
    
    special = directory
    special.value.field = pages
    
    1 = TMENU
    1 {
      
      wrap >
      wrap = <div class=”teaser-product-lvl1-wrap-outer teaser-product-lvl1-wrap-outer-left”>|</div>
      expAll = 1
      noBlur = 1
      NO >
      NO {
        
        before >
        beforeWrap >
        after >
        linkWrap >
        ATagBeforeWrap >
        ATagParams >
        doNotLinkIt = 1
        doNotShowLink = 0
        
        wrapItemAndSub >        
        ATagTitle >
        stdWrap >
        stdWrap.cObject >
        stdWrap.cObject = COA
        stdWrap.cObject {
          
          if.value.data = register:count_HMENU_MENUOBJ
          if.negate = 1
          if.isLessThan.prioriCalc = 1
          if.isLessThan.cObject = TEXT
          if.isLessThan.cObject.insertData = 1
          if.isLessThan.cObject.value = ({register:count_menuItems}+1)/2
          wrap = <div class=”teaser-product-lvl1-wrap”>|</div>
          
          
          #IMAGE
          10 = IMAGE
          10 {
            wrap = <div class=”teaser-illu”>|</div>
            file {
              width = 325c
              height = 
              maxW = 325c
              maxH = 
              import {
                cObject = TEXT
                cObject {
                  cObject = TEXT
                  cObject {
                    value = fileadmin/templates/img/hierfehltnochdername.jpg
                    override {
                      required = 1
                      data = levelmedia:-1, slide
                      wrap = uploads/media/|
                      listNum = 0
                    }
                  }
                  override {
                    required = 1
                    field = media
                    wrap = uploads/media/|
                    listNum = 0
                  }
                }
              }
            }
            altText.field = title
            titleText.field = title
            imageLinkWrap = 1
            imageLinkWrap {
              enable = 1
              typolink {
                target = _self
                parameter.field = uid
                ATagParams = class=”more”
                title.cObject=TEXT
                title.cObject.field = nav_title // subtitle // title
              }
            }
          }
          
          #WRAP Start
          15 = TEXT
          15 {
            wrap = <div class=”teaser-header-text-wrap”>
          }
          
          #TEXT
          30 = COA
          30 {
            wrap = <div class=”teaser-text”>|</div>
            10 = TEXT
            10 {
              field = abstract
              crop = 90 | … | 1
              wrap = <h2 class=”teaser-text-inner”>|</h2>
            }
            #HEADLINE
            20 = TEXT
            20 {
              wrap = <p class=”more”>|</p>
              field = title
              ATagTitle.field = nav_title // subtitle // title
              typolink.parameter.field = uid
              typolink.title.cObject=TEXT
              typolink.title.cObject.field = nav_title // subtitle // title
            }
          }
          #WRAP Start END
          35 = TEXT
          35 {
            wrap = </div>
          }
        }
        
      }
    }
    
    
  }
  #end lvl1
  
  20 < .10
  20.1.wrap = <div class=”teaser-product-lvl1-wrap-outer teaser-product-lvl1-wrap-outer-right”>|</div>
  20.1.NO.stdWrap.cObject {
    if.value.data = register:count_HMENU_MENUOBJ
    if.negate >
  }
  
}

Viel Spaß beim Anwenden.

Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Hat Euch der Artikel weitergeholfen oder gefallen? Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!Ich bin freiberuflicher TYPO3-Entwickler, Web-Entwickler und Frontend-Entwickler. Ich arbeite im und für das Web etwas mehr als 12 Jahre. Mehr Infos zu der TYPO3 Internetagentur - INGENIUMDESIGN.

Leave a Reply

Captcha *
Time limit is exhausted. Please reload CAPTCHA.

1 Kommentar

  1. Will gleich auprobieren, besten Dank. Das kann mir wirklich ziemlich Zeit sparen Grüße!

Next ArticleRunde Ecken im IE7, IE8, IE9, Firefox, Safari und Opera