Zum Inhalt springen

TYPO3 – Inhalte dynamisch in 2 Teile aufteilen

Erstellt am 24. August 2012 · 1 Antwort · letzte Antwort am 28. August 2012

Tags: Tipp

Sebastian Schmal ·

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.

Ursprünglich erschienen am 24.08.2012 auf typo3-probleme.de.