[Frage] Erst stdWrap.split <li> und dann <ul> darum legen ? TYPO3-Version: 8.7.2

  • menno08 menno08
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    10. 08. 2017, 11:18

    Hi ich versuche mir ne Tab Bar zu bauen und mit renderobj den ersten Tab zu öffnen.
    Das Problem ist nur er verarbeitet dabei auch meine <ul>.
    Wie kann ich erst den inneren <li> erstellen und im Anschluss daran den <ul> setzen ohne das dieser vom Split betroffen wird?

    [code]contentSlider1 = CONTENT
    contentSlider1 {
    wrap = <ul class="nav nav-pills">|</ul> <-- sollte wohl später ausgeführt werden?
    table = tt_content
    select {
    #Seite mit Inhalten für den Slider
    pidInList = 37
    orderBy = sorting
    where = colPos=0
    languageField = sys_language_uid
    }
    renderObj = COA
    renderObj {
    wrap= ###SPLIT###|
    10 = TEXT
    10 {
    field = uid
    wrap = <a data-toggle="pill" href="#|">
    }
    20 = TEXT
    20 {
    field = header
    wrap = |
    }
    30 = TEXT
    30 {
    wrap = |</a>
    }
    }
    stdWrap.split {
    token = ###SPLIT###
    wrap = | || <li class="active">|</li> || <li>|</li>
    }
    }[/code]

    Vielen Dank!


  • 1
  • Teisinger Teisinger
    R2-D2
    0 x
    73 Beiträge
    2 Hilfreiche Beiträge
    11. 08. 2017, 20:09

    Kannst du mr kurz mal erklären, wie das ganze aussehen soll? Und field header? Also an und für sich ein normales page Menü?

  • menno08 menno08
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    14. 08. 2017, 12:54

    Gern:

    <ul class="nav nav-pills">|</ul>
    <li class="active">
    <a data-toggle="pill" href="#uid">header</a>
    </li>
    <li>
    <a data-toggle="pill" href="#uid">header</a>
    </li>
    <li>
    <a data-toggle="pill" href="#uid">header</a>
    </li>
    </ul>

    Das oben gepostete Beispiel wrapt leider auch das <ul> wodurch in Abhängigkeit vom ###SPLIT### der vordere bzw. schließende <ul> Tag fehlerhaft ist.

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2761 Beiträge
    99 Hilfreiche Beiträge
    16. 08. 2017, 08:41

    Hallo.

    Problem liegt in der Ausführungsreihenfolge innerhalb von CONTENT-Objekten: wrap wird vor stdWrap ausgeführt.

    Lösung 1:
    Packe das Menü in ein COA und setze erst dort das UL-Tag via wrap.

    Lösung 2 (etwas eleganter):
    Nutze die optionSplit-Eigenschaften der wraps (https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/ObjectsAndProperties/Index.html#objects-optionsplit). Dann sparst Du Dir das ganze mit token etc.
    renderObj.wrap = <li class="active">|</li>|*|<li>|</li>|*|<li>|</li>

    Viele Grüße
    Julian

  • menno08 menno08
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    16. 08. 2017, 15:29

    Zitiert von: Julian.Hofmann
    Hallo.

    Problem liegt in der Ausführungsreihenfolge innerhalb von CONTENT-Objekten: wrap wird vor stdWrap ausgeführt.

    Lösung 1:
    Packe das Menü in ein COA und setze erst dort das UL-Tag via wrap.

    Lösung 2 (etwas eleganter):
    Nutze die optionSplit-Eigenschaften der wraps (https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/ObjectsAndProperties/Index.html#objects-optionsplit). Dann sparst Du Dir das ganze mit token etc.
    renderObj.wrap = <li class="active">|</li>|*|<li>|</li>|*|<li>|</li>
    Kann es sein das der Option Split bei meiner Variante nicht funktioniert?

    Viele Grüße
    Julian

    Hi Julian,

    ich stelle mich wohl zu blöd an.

    Bei Lösung 1 dachte ich mir, man muss eine neue "lib" aufmachen und die COA setzen und dann einfach das wrap überschreiben. Das ändert leider gar nichts.

    [code]contentSlider2 = COA
    contentSlider2 < page.10.variables.contentSlider1
    contentSlider2.wrap = <ul class="nav nav-pills">|</ul>[/code]

    Bei Lösung 2 vermutete ich, das ich mein renderObj.wrap durch deins ersetzen könnte, er nimmt aber immer nur das erste Element.

    Kannst du mir vielleicht doch noch einen Tip geben?

  • Teisinger Teisinger
    R2-D2
    0 x
    73 Beiträge
    2 Hilfreiche Beiträge
    16. 08. 2017, 20:28

    Mal ne andnere frage dazu, was ist eine tab bar? Ein accordion?
    Dann kannst du das sowieso mit js lösen, dann brauchst kein active beim ersten element und es mach weder aus seo sicht noch aus user sicht einen unterschied.

  • menno08 menno08
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    17. 08. 2017, 10:52

    Ich wähle ein Listenelement, welches ein div container sichtbar macht.
    Beim Accordion sind alle Elemente untereinander bei den Tabs ein Menü-Bereich und Inhaltsbereich.
    So spare ich Platz auf der Seite. Auf meiner alten Seite nutze ich 11-12 Tabs via Extension. Habe aber ein eigenartiges Phänomen das ab und zu auftritt.

    Der oben gepostet Teil ist für das Menü. Ich hab den Code leicht abgewandelt ebenso für den Inhaltsbereich verwandt.

    Geschlossen ist damit alles in Ordnung (da ich dafür kein stdWrap.split benötige)
    Aber es muss doch mit einem geöffeneten Tab funktionieren?

    (Upload von jpg kriege ich auch nicht hin -.-, https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_tabs_dynamic&stacked=h)

  • 1