Zum Inhalt springen

Split-Funktion in MENU anwenden

Erstellt am 12. Juli 2011 · 4 Antworten · letzte Antwort am 18. November 2016

Tags: Frage

MorphexX ·

Guten Abend zusammen,

ist jemandem ein Problem bei der Verwendung der Split-Funktion innerhalb eines Menüs bekannt?
Folgendes (auf das Wichtigste reduzierte) TypoScript ist bei mir in Verwendung:

temp.quickAccess = HMENU
temp.quickAccess {
  
  special = directory
  special.value = {$nav.quickAccess}
  
  1 = TMENU
  1 {
    
    noBlur = 1
    
    NO = 1
    NO {
      
      before.cObject = COA
      before.cObject {
        
        10 = TEXT
        10 {
          data = field:subtitle
          ifEmpty.data = field:title
          split {
            max = 2
            token.char = 124
            cObjNum = 1 |*| 2
            1.current = 1
            1.dataWrap = <h3>|</h3>
            2.current = 1
            2.dataWrap = <p>|</p>
          }
        }

      }

    }

  }

}

Auf Basis der in der Konstante nav.quickAccess definierten Seite, wird eine Unterseiten-Navigation erstellt. Von jeder Unterseite soll jeweils der Untertitel ausgelesen und bei einer Pipe gesplittet werden. Der Untertitel hat folgendes Format: Überschrift|Text.

Der via nav.quickAccess definierten Seite, sind 5 Seiten untergeordnet.

Das TypoScript soll folgende Ausgabe erzeugen:

<h3>Überschrift</h3>
<p>Text</p>

<h3>Überschrift</h3>
<p>Text</p>

<h3>Überschrift</h3>
<p>Text</p>

<h3>Überschrift</h3>
<p>Text</p>

<h3>Überschrift</h3>
<p>Text</p>

Das tatsächliche Ergebnis ist allerdings das folgende:

<h3>Überschrift</h3>
<h3>Text</h3>

<p>Überschrift</p>
<p>Text</p>

<p>Überschrift</p>
<p>Text</p>

<p>Überschrift</p>
<p>Text</p>

<p>Überschrift</p>
<p>Text</p>

Es macht den Anschein, als würde die Array-Referenz hinter cObjNum nicht mehr korrekt auf die Split-Elemente zeigen, sondern auf den aktuellen Menüpunkt. In dem TypoScript entdecke ich keinen Fehler; es ist in abgewandelter Form bereits seit einigen Projekten im Einsatz.

Hat jemand eine Idee, wie ich zum Ziel komme, aber nicht auf den Split des Untertitels verzichten muss?

Beste Grüße und vielen Dank im Voraus

holzem ·

Hallo, ist zwar ein sehr alter Beitrag habe aber genau das selbe Problem.
Die Zeiger (current) zeigen auf das Menu-Array nicht auf das split-Array.

Der Link mit der Lösung geht nicht mehr.

holzem ·

Kann hierzu jemand helfen?
Ich habe innerhalb eines Menu ein Split durchführen möchte.
Das Problem dabei ist, dass dann der OptionSplit (cObjNum) auf die Menu-Item zeigt nicht auf die Split-Item.

Hier mal mein Code:

lib.product.overview = HMENU
lib.product.overview {

    entryLevel = -1

    1 = TMENU
    1 {
        expAll = 1

        NO {
            doNotLinkIt = 0
            linkWrap = <div class="row">|</div>
            ATagBeforeWrap = 1

            stdWrap.cObject = COA
            stdWrap.cObject {

                ## GET CUSTOM FIELD (Values seperated by semikolon)
                10 = COA
                10 {

                    ## List
                    10 = TEXT
                    10 {
                        data = field:tx_mycustomfield
                        split {
                            token = ;
                            cObjNum = |*| 1 || 2 || 3 |*|

                            1.current = 1
                            1.wrap = <div class="item1">|</div>

                            2.current = 1
                            2.wrap = <div class="item2">|</div>

                            3.current = 1
                            3.wrap = <div class="item 3">|</div>
                        }
                    }
                }
            }
        }
    }
}

Alle mit Split generierten DIV haben die Klasse "Item1"

BastianBalthasarBux ·

ich denke |*| vorne (und eventuell hinten) musst du entfernen.
theoretisch, wenn ich den code richtig verstehe, sollten mit diesem code die 'mittlersten drei' jeweils 1,2 und 3 haben.
ich glaub aber, dass hier der optionSplit schlicht streikt.
beim 3.wrap ist glaub ich ein leerzeichen in der klasse zuviel (was für das eigentliche problem nix zur sache tut). 😉