Zum Inhalt springen

Inhalte in rechter Spalte mit DIV Container wrappen

Erstellt am 7. Februar 2007 · 9 Antworten · letzte Antwort am 12. April 2007

Tags: Frage

Mik3e ·

Hi,

Ich gebe in der rechten Spalte die Datensätze mit colPos 2 der aktuellen Seite aus. Für das Layout muss ich die Inhalte nun noch mit einem <div> Container wrappen (händisch im WYSIWYG Editor klappt das leider nicht).

Das ganze funktioniert so weit auch ganz gut.

Meine zwei Probleme:

1) Wenn kein Inhalt definiert wird sollte auch nichts angezeigt werden. Der WRAP wird aber dennoch gesetzt (logisch). Gibt es irgendeine Condition, mit der ich Abfragen kann, ob Inhalte vorhanden sind und nur wenn diese Condition true ist, wird gewrappt?

2) Derzeit wird über alle Datensätze der rechten Spalte der <div> Wrap gelegt. Gibt es eine Möglichkeit, das jeder Datensatz einzeln gewrappt wird?

Hier mein derzeitiges TS:

# INHALT DER RECHTEN SPALTE AKTUELLE SITE
		marks.RIGHTCOL = COA
		marks.RIGHTCOL.10 = CONTENT
		marks.RIGHTCOL.10 {
			table = tt_content
			select.where = colPos = 2
			select.orderBy = sorting
			wrap = <div class="featurebox">|</div>
		}

Vielen Dank vorweg,
LG
Mike

Mik3e ·

Hi,

Danke für die Antwort.. Du hast nicht zufällig irgendwo ein Anwendungsbeispiel rumliegen? Konnte im Netz nicht wirklich was finden..

Danke & Ciao,
Mike

Mik3e ·

Bin auf eine andere Lösung gestoßen:

marks.RIGHTCOL = COA
marks.RIGHTCOL.10 = CONTENT
		marks.RIGHTCOL.10 {
			table = tt_content
			select.where = colPos = 2
			select.orderBy = sorting
			stdWrap.required = 1
			stdWrap.wrap = <div class="featurebox">|</div>
		}

Dürfte den selben Effekt haben.

Hast Du vielleicht eine Idee, wie ich jeden Datensatz getrennt wrappen kann (wenn es zb 3 Datensätze vom Typ "Text" in der rechten Spalte gibt)?

cope ·

HI,
Du meinst wahrscheinlich renderObj vom Objekt CONTENT? Da gibt es dann auch ein wrap pro Element....

sowas in der Art?

LG
Cope

Mik3e ·

Hi,

Im Detail:
In der rechten Spalte wir der Content der aktuellen Site (der in der rechten Spalte angelegt wurde - colPos==2) angezeigt.

Gibt es in dieser rechten Spalte nun mehrere Datensätze (zB. 3 Elemente vom Typ Text), wird der Wrap aber momentan über alle drei Elemente gelegt.

Ich hätte nun gerne, dass aber jedes Textelement einzeln gewrapt wird.
Nachdem es aber sowas wie eine foreach Schleife, die alle Elemente listet, nicht gibt, steh ich ein wenig an :o)

Danke & Ciao,
Mike

ehontheim ·

Hmmm, bin auch nicht der TypoScript-Guru und daher macht mir die Einschränkung auf die rechte Spalte Sorgen.

Wenn es nicht stört, das je ein <div> um jedes einzelne Contenelement der Seite gewrappt wird, dann würde folgendes helfen:

tt_content.stdWrap.wrap = <div class="contentelement">|</div>

Grüße

Erwin

cope ·

Hallo zusammen!

#------------------------------------------------------
# Template fuer die rechte Spalte

tempRight = CONTENT
tempRight {
  table = tt_content
  select {
    pidInList = this
    orderBy = sorting
    where = colPos=2
  }
  renderObj < tt_content
  renderObj.stdWrap.wrap = <Vorher>|<Nachher>
}

müsste doch gehen? Zumindest für die Elemente aus tt_content.

Gruß
Cope

Mik3e ·

Hi,

Hat 1A geklappt.
Hier nochmal der gesamte TS Code, sollte das mal jemand brauchen:

# INHALT DER RECHTEN SPALTE AKTUELLE SITE
	marks.RIGHTCOL = COA
	marks.RIGHTCOL.10 = CONTENT
	marks.RIGHTCOL.10 {
	        table = tt_content
		select {
    			pidInList = this
    			orderBy = sorting
    			where = colPos=2
  		}
  		renderObj < tt_content
  		renderObj.stdWrap.wrap = <div class="featurebox">|</div>
	}

Danke & Ciao,
Mike

The_Gunslinger ·

Gibt es die Möglichkeit das so abzuändern, dass NUR einfache Inhaltselemente von Typ "Einfacher Text" so gewrappt werden?

D.h. wenn ich ein Plugin einfüge, es davon ausgenommen wird?