Zum Inhalt springen

gesamtes Content Element / Content Block wrappen

Erstellt am 13. Dezember 2004 · 12 Antworten · letzte Antwort am 23. Mai 2005

Tags: Inhaltselemente, Frage

Unbekannter Benutzer ·

Hallo allerseits,

ich suche jetzt schon seit Stunden aber stehe auf dem Schlauch.

Ich möchte ein gesamtes Content Element bzw. einen Content Block wrappen. Bisher finde ich nur Möglichkeiten, einzelne Teile (z.B. die Überschrift oder den Text) zu wrappen oder aber alles (also alle Content Elemente die untereinander stehen).

Als Beispiel, ich hab im Template derzeit für den content wrap folgendes definiert:

marks.CONTENT_RIGHT.wrap = <div> | </div>

Das macht mir jetzt schön um den GESAMTEN Content die divs. ich möchte aber, dass für jedes Content Element in dieser Spalte ein div auf und wieder zu gemacht wird.

Das Gewürge mit im Header über lib.stdHeader das div aufzumachen und dann beim Textelement das div wieder zuzumachen möchte ich vermeiden da es mir dann in bestimmten Fällen das Design verhagelt da z.B. ein div auf-, aber nicht zugemacht wird.

Hoffe das war verständlich ... und freue mich auf Antwort 🙂

Viele Grüße,
Niki

P.S.: Arbeite mit css_styled_content

Unbekannter Benutzer ·

keiner eine Idee oder doch zu trivial? Sagte ja schon, ich steh auf der Leitung 😉

Hier noch mal der komplette Code wie ich den content hole und wrappe:

     marks.CONTENT_CENTER = CONTENT
     marks.CONTENT_CENTER < styles.content.get
     marks.CONTENT_CENTER.wrap = <div class="text"> | </div>

     marks.CONTENT_LEFT = CONTENT
     marks.CONTENT_LEFT < styles.content.getLeft

     marks.CONTENT_RIGHT = CONTENT
     marks.CONTENT_RIGHT < styles.content.getRight
     marks.CONTENT_RIGHT.wrap = <div> | </div>

Vielen Dank und viele Grüße!
Niki

Proximo ·

Vielleicht ist es einfach zu früh am Morgen aber ich verstehe das Prob nicht... also die 1. frage ist ob du nur 1 Contentobject wrapen willst, also ca so:

temp.*object* = RECORDS
temp.*object* {
tables = tt_content
source = 171
dontCheckPid = 1
}

oder (warscheinlicher) eine ganze Objectkette... also alles aus... zb... dem Bereich Content, siehe:

#183354

Dann brauchst du eigendlich nurnoch

temp.*object*.wrap = <XY>

einzugeben und das Prob hat sich erledigt... noch irgendwas?^^ Wenn ja (oder das nicht das war was du gemeint hast) versuch das in 2-3 kurzen Sätzen nochmal zu erklären...

MFG Proximo

Unbekannter Benutzer ·

Sorry habs wahrscheinlich viel zu umständlich erklärt. Also, wenn ein User einen Content Block anlegt (bestehend aus Header, Text, Bild etc.) möchte ich diesen komplett mit div-Tags umschließen - jeden einzeln.

Hier kurz wie es mir momentan ausgegeben wird (bei marks.CONTENT_RIGHT.wrap = <div> | </div>):

<div>
<h1>erster Content Block</h1>
<p>Inhalt des ersten Content Blockes</p>
<h1>zweiter Content Block</h1>
<p>Inhalt des zweiten Content Blockes</p>
</div>

Was ich aber benötige ist folgendes:

<div>
<h1>erster Content Block</h1>
<p>Inhalt des ersten Content Blockes</p>
</div>
<div>
<h1>zweiter Content Block</h1>
<p>Inhalt des zweiten Content Blockes</p>
</div>

Danke schon mal!
Viele Grüße
Niki

lexus_mod · · Beste Antwort

Ja, das selbe Prob habe ich auch, ich versuche das schon seit Tagen!

Wenn es nur um das wrapen der einzelnen Inhalte geht dann zieh dir mein Script.
#19150

Grüße Lexus_mod

Unbekannter Benutzer ·

das gibts doch nicht das muss doch irgendwie gehen!
Einzelne Elemente wrappen kein Problem und im Notfall könnte ich auch was zusammenwürgen d.h. bei der h1 headline ein div aufmachen und hinter dem bodytext das div wieder zumachen aber wie schon oben geschrieben wäre das keine saubere Lösung.

Dein Skript find ich ein bissl umständlich. Hab in dem thread mal was zu geschrieben (damit wir hier beim Thema bleiben *g*).

Viele Grüße
Niki

lexus_mod ·

Sorry, aber mein Script macht genau das was Du oben beschrieben hast.

<DIV class="all"><H1>head1</H1><span class="bodytext">bodytext1
</span></DIV>
<DIV class="all"><H1>head1</H1><span class="bodytext">bodytext1
</span></DIV>

default = COA
default {
wrap = <div class="all">| </div>
30 = TEXT
30.field = header
30.wrap = <H1> | </H1>

40 = TEXT
40.field = bodytext
40.br = 1
40.wrap = <span class="bodytext"> | </span>

Unbekannter Benutzer ·

Ok, getestet und funktioniert leider nicht. Aus Gründen die mir selbst nicht ganz klar sind (zum Glück ist das hier das Anfängerfragenforum 😉) kann ich mit dem Content Object Array nicht arbeiten (wird kein content gezogen). Vermutlich weil ich das content (default) nicht inkludiert habe, worauf ich aber auch gern verzichten würde.

Ich habs dann noch so versucht:

     marks.CONTENT_RIGHT= COA
     marks.CONTENT_RIGHT {
          wrap = <div> | </div>
          table = tt_content
          select.orderBy = sorting
          select.where = colPos=2
          select.languageField = sys_language_uid
          }

Aber damit hab ich das gleiche Problem (gesamte Spalte wird mit div umschlossen und nicht die einzelnen Content Blöcke innerhalb der Spalte).

Wg. Deinem RTE Problem, das könnte übrigens auch am COA liegen ... ich erinnere mich dunkel dass ich das auch irgendwann mal hatte als ich den Inhalt über COA eingebunden hatte.

Viele Grüße!
Niki

Proximo ·

Wie währs mit PHP?

while($row=mysql_fetch_assoc($res)) {
$langArr[$row["sys_language_uid"]]=$row["title"];
}

Kennst man doch zb auch aus der Language-Verwaltung von Typo...

Unbekannter Benutzer ·

ja, das wäre dann die nächste Herangehensweise. Dachte halt es gibt da in TS bzw. im TSOB Möglichkeiten weils ja eigentlich eine ziemlich alltägliche Anforderung ist ...

Viele Grüße
Niki

Schmoozer ·

Das is vielleicht ein bisschen spät, aber ich habe es so gemacht, damit jedes einzelne Inhaltselement gewrapt wird:

marks.CONTENT <styles.content.get 
marks.CONTENT.renderObj.stdWrap.wrap = vorher | danach

mfg, Schmoozer