Zum Inhalt springen

Sidebar (aside) erstellen

Erstellt am 30. Juli 2012 · 6 Antworten · letzte Antwort am 2. August 2012

Tags: Frage

timmy2007 ·

Ich möchte folgenden HTML-Code mit Typoscript erstellen:

<!-- sidebar -->
        	<aside id="sidebar">
        		
        		<ul>
	        		
	   <li class="block">
		        		<h4>Categories</h4>
						<ul>
							<li class="cat-item"><a href="#" title="title">Film and video<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Print<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Photo and lomo<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Habitant morbi<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Film and video<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Print<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Photo and lomo<span class="post-counter"> (2)</span></a></li>
							<li class="cat-item"><a href="#" title="title">Habitant morbi<span class="post-counter"> (2)</span></a></li>
						</ul>
	        		</li>
	        		
	        		<li class="block">
		        		<h4>Archives</h4>
						<ul>
							<li class="cat-item"><a href="#" title="title">January</a></li>
							<li class="cat-item"><a href="#" title="title">February</a></li>
							<li class="cat-item"><a href="#" title="title">March</a></li>
						</ul>
	        		</li>
        		
        		</ul>
        		
        	</aside>
			<!-- ENDS sidebar -->

Mein Typoscript-Code sieht zur Zeit so aus:

lib.aside = COA
lib.aside {
 
  10 = TEXT
  10.wrap= <aside id="sidebar"><ul>|</ul></aside>
  10.data = leveltitle:2 // Anpassen an die Ebene der übergeordneten Seite
 
  20 = HMENU
  20 {
    entryLevel = 1 // Muss angepasst werden, je nach dem, auf welcher Ebene die übergeordneten Seiten liegen
 
  1 = TMENU
  1 {
    wrap = <ul>|</ul>
    NO.wrapItemAndSub = <li class="cat-item">|</li>
 
    CUR = 1
    CUR.wrapItemAndSub = <li class="block">|</li>
    CUR.linkWrap = <strong>|</strong>
    CUR.doNotLinkIt = 1
  }
  }

Das macht dann zur Zeit folgenden Quellcode:

<!-- sidebar -->
                        <div>
                <aside id="sidebar"><ul>News</ul></aside><ul><li class="block"><strong>News</strong></li><li class="cat-item"><a href="index.php?id=597" onfocus="blurLink(this);"  >Teilnahmebedingungen</a></li></ul>
                </div>
                        <!-- ENDS sidebar -->

Irgendwie will es bei mir nicht so wie es sein sollte.

Kann mir bitte jemand helfen?

timmy2007 ·

Ich bin etwas weiter gekommen. Mein TS-Code sieht nun so aus:

lib.aside = COA
lib.aside {
 
  10 = TEXT
  10.wrap= <aside id="sidebar"><ul><li class="block"><h4>|</h4>
  10.data = leveltitle:2 // Anpassen an die Ebene der übergeordneten Seite
 
  20 = HMENU
  20 {
    entryLevel = 1 // Muss angepasst werden, je nach dem, auf welcher Ebene die übergeordneten Seiten liegen
 
  1 = TMENU
  1 {
    wrap = |</ul></aside>
    NO.wrapItemAndSub = <li class="cat-item">|</li></ul>
 
    CUR = 1
    CUR.wrapItemAndSub = <ul><li class="cat-item">|</li>
    CUR.linkWrap =
    CUR.doNotLinkIt = 1
  }
  }

Das macht jetzt folgenden HTML-Code:

<!-- sidebar -->
                        <div>
                <aside id="sidebar"><ul><li class="block"><h4>News</h4><ul><li class="cat-item">News</li><li class="cat-item"><a href="index.php?id=597" onfocus="blurLink(this);"  >Teilnahmebedingungen</a></li></ul></ul></aside>
                </div>
                        <!-- ENDS sidebar -->

Allerdings gibt es noch ein Problem: Am Ende des HTML-Codes sieht man zwei schließende "ul" Tags. Das ist auch richtig so, doch dort fehlt ein schließendes "li" von der li-Klasse "block".

Wie kann ich den TS-Code noch so verändern, dass der schließende li-tag der Klasse "block" eingefügt wird?

etux ·

Klar, das Menü schreibst Du auch als Objekt 20. Also nach dem „10.wrap = <aside …..“
Und Klammer-Fehler hast Du auch.

Aus meiner Sicht würde es eher so Sinn machen:

lib.aside = COA
lib.aside {
  wrap= <aside id="sidebar">|</aside>
  10 = TEXT
  10.data = leveltitle:-1 // Anpassen an die Ebene der übergeordneten Seite
  10.wrap = <h3>|</h3>
  20 = HMENU
  20 {
    entryLevel = -1 // Muss angepasst werden, je nach dem, auf welcher Ebene die übergeordneten Seiten liegen
 
    1 = TMENU
    1 {
      wrap = <ul>|</ul>
      NO.wrapItemAndSub = <li class="cat-item">|</li>
 
      CUR = 1
      CUR.wrapItemAndSub = <li class="block">|</li>
      CUR.linkWrap = <strong>|</strong>
      CUR.doNotLinkIt = 1
    }
  }
}
timmy2007 ·

Habe es nun doch selber herausgefunden. Jetzt habe ich den TS-Code mit dem schließenden li-Tag geändert:

lib.aside = COA
lib.aside {
 
  10 = TEXT
  10.wrap= <aside id="sidebar"><ul><li class="block"><h4>|</h4>
  10.data = leveltitle:2 // Anpassen an die Ebene der übergeordneten Seite
 
  20 = HMENU
  20 {
    entryLevel = 1 // Muss angepasst werden, je nach dem, auf welcher Ebene die übergeordneten Seiten liegen
 
  1 = TMENU
  1 {
    wrap = |</li></ul></aside>
    NO.wrapItemAndSub = <li class="cat-item">|</li></ul>
 
    CUR = 1
    CUR.wrapItemAndSub = <ul><li class="cat-item">|</li>
    CUR.linkWrap =
    CUR.doNotLinkIt = 1
  }
  }

Danke fürs Lesen!

etux ·
timmy2007 schrieb

... Danke fürs Lesen!

Bitte, gern.
Geschrieben hatte ich aber auch – ob Du es gelesen hast … 😃

.

timmy2007 ·
etux schrieb
timmy2007 schrieb

... Danke fürs Lesen!

Bitte, gern.
Geschrieben hatte ich aber auch – ob Du es gelesen hast … 😃

.

Dann haben sich unsere Beiträge zeitlich überschnitten!

timmy2007 ·

Warum wird mit meinem TS Code kein Menü angezeigt, das alle Unterseiten der aktuellen Seite beinhaltet, auf der das Menü zu sehen ist?

lib.asidepagesidebar = COA
lib.asidepagesidebar {
 
  10 = TEXT
  10.wrap= <aside id="sidebar"><ul><li class="block"><h4>|</h4>
  10.data = leveltitle:1 // Anpassen an die Ebene der übergeordneten Seite
 
  20 = HMENU
  20 {
    entryLevel = 1
    special = list
    maxItems = 10
    
  1 = TMENU
  1 {
    wrap = |</li></ul></aside>
    NO.wrapItemAndSub = <li class="cat-item">|</li>
    expAll = 1
          noBlur = 1
 
    CUR = 1
    CUR.wrapItemAndSub = <ul><li class="cat-item">|</li>
    CUR.linkWrap =
    CUR.doNotLinkIt = 1
  }
  }
  }

Meine Seitenstruktur ist in etwa so:

Seite 1
-Unterseite 1
-Unterseite 2
-Unterseite 3

Was ist falsch am Code?

Ich bekomme nur die erste Unterseite angezeigt, wenn ich entrylevel auf 2 setze und die eigentliche Hauptseite wenn der Level auf 1 ist.

Alle Seiten und Unterseiten sind sichtbar!