Zum Inhalt springen

Content wrapen mit Div

Erstellt am 1. Oktober 2006 · 5 Antworten · letzte Antwort am 1. Oktober 2006

Tags: Frage

Fiberman ·

Hallo,

ich habe ein Problem bei der Umsetzung meines Projektes. Ich möchte den tt_content gezielt mit CSS und div's formatieren.

Der Quelltext sollte am Schluss so aussehen:

<!--  CONTENT ELEMENT, uid:2/text [begin] -->
<a id="1"></a>
<!--  Header: [begin] -->
<div class="csc-header csc-header-n1"><h1 class="csc-firstHeader">Überschrift</h1></div>
<!--  Header: [end] -->
<div id="border"></div>
  <div id="inhalt">
    <!--  Text: [begin] -->
    <p class="bodytext">Blindtext </p>
    <p class="bodytext">&nbsp;</p>
    <!--  Text: [end] -->
  </div>
<div id="border"></div>
<br />
<!--  CONTENT ELEMENT, uid:2/text [end] -->

Mein Problem, wo ich nicht weiter komme:

Wenn ich im Typoscript den Content wrappe ist die Überschrift im Content mit drinnen, was ich nicht will. Wie bekomme ich die Überschrift über den content und um den content die border div's?

page.10.marks {
  CONTENT = CONTENT
  CONTENT {
    table = tt_content
    select.orderBy = Sorting
    select.where = colPos = 0
    renderObj < tt_content
    renderObj.stdWrap.wrap = <div id="border"></div>
  <div id="inhalt">
|   </div>
<div id="border"></div>
<br />
   }
}

Danke für euere Antworten!

toyde ·

Hey,

Suche im Forum nach "Contentelement wrap", "content wrap". Es gibt viele Lösungen dazu. Insbesondere wie man ganze Elemente oder nur Header, Text, etc. gesondert wrappt.

Zu deinem ersten HTML-Code:

<!--  CONTENT ELEMENT, uid:2/text [begin] -->
<a id="1"></a>
<!--  Header: [begin] -->
<div class="csc-header csc-header-n1"><h1 class="csc-firstHeader">Überschrift</h1></div>
<!--  Header: [end] -->
<div id="border"></div>
  <div id="inhalt">
    <!--  Text: [begin] -->
    <p class="bodytext">Blindtext </p>
    <p class="bodytext"> </p>
    <!--  Text: [end] -->
  </div>
<div id="border"></div>
 
<!--  CONTENT ELEMENT, uid:2/text [end] -->

Leere Divs werden in manchen Browsern erst gar nicht dargestellt. Zudem ist das doppelte id="border" in CSS falsch. Nur falls das jemand liest und umsetzen möchte 😉

grüsse

Fiberman ·

Hallo,

dann werde ich es mal mit diesen Suchbegriffen versuchen!

Das doppelte id's nicht css valid sind ist mir bekannt. Ich werde das
sowieso später mit class umsetzen.

mal sehen, ob mir die neuen Suchbegriffe weiter helfen.

Gruß

Fiberman ·
page.10.marks {
 CONTENT = CONTENT
  CONTENT {
    table = tt_content
    select.orderBy = Sorting
    select.where = colPos = 0
     
     renderObj=COA
     renderObj {
              wrap = |
              10 = TEXT
              10.field = header
              10.wrap = <div class="conttitel">|</div><div class="contborder"></div>
              20 = TEXT
              20.field = bodytext
              20.wrap = <div class="continhalt">|</div><div class="contborder"></div><br />
              }
   }
}

Die Ausgabe klappt jetzt (fast richtig).
Jetzt hab ich das Problem, das die Formatierung von <p class="bodytext"> nicht mehr vorhanden ist. Wie bekomm ich diese Formatierung jetzt wieder rein?

toyde ·

Weiss es grade nicht auswendig, evtl. liegt's daran:

renderObj < tt_content

Aus deinem ersten Post.

Deaktiviere dein aktuelles Script (auskommentieren, schnell rausnehmen) und browse durch deine vorige Lösung mit Hilfe "TypoScript Object Browser", ebenfalls in Template > Seite > Pulldownmenu vorhanden. Darin sind alle eingebundenen Objekte aufgelistet, inkl. wraps, etc.. Den gewünschten wrap aus funktionierendem bodytext-wrap in dein jetziges Script übernehmen.

grüsse

Fiberman ·

Danke für den Tip mit dem Objektbrowser (manchmal muss man wirklich mit der Nase auf die "Lösung" gestossen werden.

seite.10.marks {
  CONTENT = CONTENT
  CONTENT {
    table = tt_content
    select.orderBy = Sorting
    select.where = colPos = 0

    renderObj < tt_content
    renderObj=COA
    renderObj {
      10 = TEXT
      10.field = header
      10.wrap = <div class="conttitel">|</div><div class="contborder"></div>
      20 = TEXT
      20.field = bodytext
      20.parseFunc = < lib.parseFunc_RTE
      20.editIcons = tt_content:bodytext, rte_enabled
      20.wrap = <div class="continhalt">|</div><div class="contborder"></div><br />
    }
  }
}

dann gings so, wie ich es mir vorgestellt habe. Jetzt kam das große Erschrecken! Keine Formulare (Login, Formmailer) sind mehr möglich!!!
Woran kann das liegen?
Danke Gruß Fiberman