Zum Inhalt springen

Hmenu - Listenelemente umschließen

Erstellt am 29. Dezember 2011 · 2 Antworten · letzte Antwort am 30. Dezember 2011

Tags: Frage

penzi ·

Hallo, seit kurzem versuche ich mir über diverse Tutorials Typo3 und Typoscript anzueignen. Jezt bin ich leider an einem Punkte gelangt, wo ich nicht weiter komme. Vielleicht kann mir jemand hier bei meinem kleinen Problem helfen Ich benötige für eine Navigation folgende Struktur:

            <ul id="mainnavi">
                <li class="active left"><a href="#" class="convert">test</a>
                    <ul class="mainnavi_sub">
                        <div class="block">
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                        </div>
                        <div class="block">
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                            <li><a href="#">test</a></li>
                        </div>
                        <div class="clear"></div>
                    </ul>
                </li>
                <li><a href="#" class="convert">test</a></li>
            </ul>

Also das Submenu hat eine unbestimmte Anzahl an Listenelementen, und jeweils fünf dieser Listenelemente sollen in einem Div zusammen geschlossen werden.

Also den Aufbau der Navigation habe ich schon geschafft. Leider weiß ich nicht wie ich jeweils fünf <li> mit einem <div class="block"> umschließen kann o.O

Hier mal das Typoscript:

lib.mainnavigation = HMENU
lib.mainnavigation {
entryLevel = 1  
  1 = TMENU
  1 {
    expAll =1
    wrap = <ul id="mainnavi">|</ul>
    noBlur = 1
    NO = 1
    NO {
      wrapItemAndSub = <li class="first">|</li>|*|<li>|</li>|*|<li class="last">|</li>
      stdWrap.htmlSpecialChars = 1
      ATagParams = class="convert"
    }
    ACT <.NO
    ACT {
      wrapItemAndSub = <li class="active first">|</li> |*| <li class="active">|</li> |*| <li class="active last">|</li>
    }
  }
 
  2 < .1
  2 {
    wrap = <ul>|</ul>
    NO{
      ATagParams = 0
      ATagParams = class =
    }
    ACT{
      ATagParams = class =
    }
  }
 
  3 < .2
}

Wäre nett, wenn mir jemand helfen kann oder mir einen passenden Link schicken könnte, wo ich es mir anhand eines ähnlichen Beispieles ansehen kann.

jazbo ·

Hallo,

ich habe so etwas ähnliches mal gelöst:

1. Schritt

itemArrayProcFunc

damit rufe ich eine PHP-Funktion auf, diese manipuliert dass MenyArray so, dass jeweils ein
Feld, bei mir hieß es myWrap mit dem Wert First, Middle, Last oder Single befüllt wird.

2. Schritt

Auf PHP Seite einfach dass Array in einer Schleife durchlaufen, um mit Modulo 5 in einer IF-Bedingung den Wert passend setzten.

3. Schritt

Passend wrappen per Typoscript

    NO.wrapItemAndSub = |
    NO.wrapItemAndSub.override = <ul class="myClass">|</ul>
    NO.wrapItemAndSub.override.if{
      value= Single
      equals.field = myWrap
     }
     NO.before <
     NO.before.override = <ul class="myClass">
     NO.before.override.if{
      value= First
      equals.field = myWrap
     }
    NO.after <     
    NO.after.override = </ul>
    NO.after.override.if{
    value= Last
    equals.field = myWrap
     }   
    # NO.doNotLinkIt =  1			
    }

Middle wird hier nicht benutzt, hatte ich zum Testen mit eingebaut.
Count und Modulo kann man auch per Typoscript umsetzen, es sollte also auch ganz ohne PHP gehen, für mich war es so einfacher, das ich das MenuArray auch noch Umsortieren musste.

Wenn Du alles per TypoScript lösen willst, kanst Du IF, Modulo (%) und Prioricalc in mein TypoScript einbauen.

Hier steht, wie man rechnen kann:
http://typo3blogger.de/rechnen-mit-typoscript/

Hier steht, wie man Menupunkte zählen kann:
http://www.typo3wizard.com/de/snippets/menus/nummeriertes-menue.html

gruß

Jazbo

penzi ·

Danke für die schnelle Hilfe 😃
Hui, wirkt beim ersten mal ziemlich komplex :o, aber ich werds sofort versuchen, wenn ich wieder etwas Zeit dafür habe!