Zum Inhalt springen

HTML Code vor und nach TMENU in Subparts; wie?

Erstellt am 4. Mai 2009 · 5 Antworten · letzte Antwort am 4. Mai 2009

Tags: Frage

floschen ·

Hallo Forum,

Ich habe mittels Autoparser Submarker in einer Vorlage gesetzt. Das derzeitige Menü der Originalseite sieht in HTML so aus:

<td><table class="tablesub">
              <tbody><tr> 
                <td width="480"> </td>

                <td width="50"><img src="img/hand.gif" border="0" height="17" alt="" /></td>
                <td class="sub"><a href="unterseite1.htm">Unterseite_1</a></td>
                <td class="sub"><a href="unterseite2.htm">Unterseite_2</a></td>
              </tr>
            </tbody></table></td>

Mein TypoScript um den Bereich zu markieren sieht so aus:

TABLE.class.tablesub = 1
TABLE.class.tablesub.subpartMarker = SUBMENU

Ergebnis ist in HTML:

<td><table class="tablesub">
<!--###SUBMENU### begin -->
[...]
<!--###SUBMENU### end -->
</table></td>

Die Verweise zu unterseite1.htm und unterseite2.htm kann ich einfach wrappen mit

1 = TMENU
1.NO.linkWrap = <td class="sub">|</td>

Aber wie bekomme ich den HTML Code davor und dahinter hin?
Genauer davor:

<tbody><tr>
<td width="480"></td>
<td width="50"><img src="fileadmin/template/main/img/hand.gif" border="0" height="17" alt="" /></td>

und dahinter:

</tr></tbody>
Julian.​Hofmann ·

Hallo.

Die TSref gibt für TMENUITEMS hilfreiche Hinweise. Sollte mit allWarp, allStdWrap, stdWrap in Verbindung mit prepend/append und mit before/after viele Wege zum Ziel geben.

Viele Grüße
Julian

floschen ·

Hallo Julien,

das habe ich auch schon gesehen, gelesen, aber nicht alles verstanden. Zu meinem gewünschten Ergebnis hat das nicht geführt.
Der Auszug aus meinem derzeitigen TS sieht so aus:

  temp.sub_menu = HMENU
temp.sub_menu {
entryLevel = 1
1 = TMENU
1 {
  NO.before
  NO.beforeWrap = <tbody><tr><td width="480">&nbsp;</td><td width="50"><img src="fileadmin/template/main/img/hand.gif" border="0" height="17"></td>
  NO.linkWrap = <td class="sub">|</td>
  NO.after
  NO.afterWrap = </tr></tbody>
  }
}

Und in HTML siehts dann so aus:

 [...]
	<tbody><tr>
	<td width="480">&nbsp;</td>
	<td width="50"><img src="fileadmin/template/main/img/hand.gif" border="0" height="17"></td>
<td class="sub"><a href="index.php?id=unterseite1" onfocus="blurLink(this);"  >Unterseite_1</a></td>
	</tr></tbody>
	
	<tbody><tr>
	<td width="480">&nbsp;</td>
	<td width="50"><img src="fileadmin/template/main/img/hand.gif" border="0" height="17"></td>
<td class="sub"><a href="index.php?id=unterseite2" onfocus="blurLink(this);"  >Unterseite_2</a></td>
	</tr></tbody>
[...]

Also wird um jeden Link gewrapt... Habe schon eine Menge ausprobiert und getestet. Doch beschäftigt mich das jetzt schon seit fast zwei Tagen :-(

Vielen Dank

Julian.​Hofmann ·

Oh, ok, da hab ich was missverstanden.

Um das ganze Menü herum bekommst Du es mit einem einfachen wrap hin:

temp.sub_menu.wrap = <tbody><tr><td width="480"> </td><td width="50"><img src="fileadmin/template/main/img/hand.gif" border="0" height="17"></td>|</tr></tbody>
Julian.​Hofmann ·

Eine andere Lösung dürfte sein, dass Du den Selektor für Autotemplate (class="tablesub") nicht in die Tabelle, sondern in die Zeile (<tr class="tablesub">) setzt.

Lösungen mit Wraps sind oft einfach. Man muss nur mal durchsteigen, wann udn wie welcher Wrap greift. Aber das kommt mit der Zeit...