Zum Inhalt springen

Inhaltselemente selber rendern

Erstellt am 4. Oktober 2006 · 11 Antworten · letzte Antwort am 11. Januar 2007

Tags: Inhaltselemente, Links, Frage

PPP01 ·

Hi, ich wollte ansich etwas ganz einfaches machen.
Ich möchte eine rechte Spalte auf allen Seiten haben, die überall den gleichen Inhalt hat.
Dafür habe ich eine neue, eigene Seite namens "rechte Spalte" angelegt und dort den Inhalt im RTE (HTMLArea) angelegt.

Nun gehe ich in meinem Main-Template hin und selecte den Inhalt dieser Seite und schiebe sie der rechten Seite unter

subparts.rightContent = CONTENT
  subparts.rightContent.table = tt_content
  subparts.rightContent.select {
    pidInList = 43
    orderBy = sorting
  }

Das funktioniert auch ganz gut.
Leider ist der HTML-Quelltext nicht so, wie ich ihn gerne hätte:

<a id="c21"></a><div class="csc-header csc-header-n1"><h1 class="csc-firstHeader">Kontakt</h1></div><p class="bodytext">Sie wünschen direkten Kontakt? Hier sind alle nötigen Angaben.</p>

Deshalb dachte ich mir (nach einigem googeln), dass ich den Inhalt selber render mit folgendem TS:

subparts.rightContent.renderObj = COA
  subparts.rightContent.renderObj {
    10 = TEXT
    10.wrap = <h4>|</h4>
    10.field = header
    20 = TEXT
    20.wrap = <p>|</p>
    20.field = bodytext
  }

Auch das klappte gut, allerdings nur so lange, bis ich so vermessen war, einen Link einzufügen. Der <link 39 - internal-link>Kontakt</link> wurde leider gar nicht mehr umgewandelt.

Wie bekomme ich das nun hin, dass der Inhalt der rechten Spalte einfach formatiert ist (<h4>Überschrift</h4><p>Inhalt</p>) aber trozdem noch richtig gerendert wird?
Habe ich den völlig falschen Ansatz gewählt?

Schöne Grüße
Patric

PPP01 ·

Hmm, leider weiß ich nicht genau, was Du meinst. Ich suche gerade im ObjectBrowser nach dem Object von CSS Styled Content, aber leider finde ich es nicht.

Die Doku zu CSS Styled Content ist leider auch recht dürftig. Wo soll ich also schauen?

hanz ·

Hey Patric,

hatte grad das selbe Problem 😉
füg das mal mit ein

parseFunc =< lib.parseFunc_RTE

...dann rendert er den bodytext zusätzlich mit dem RTE Kram und du bekommst einen Link heraus.

Steht im css_styled_content Template. Zu sehen unter Template Tools/Template Analyzer.

Gruss, Hannes

meta_ak ·

So ein Zufall. Habe heute das gleiche Problem aber wo einfügen? Komme hiermit nicht klar. Habe alles schön gerendert bloß die im RTE gesetzten Links werden nicht angezeigt. Kann mir jemand helfen?

  renderObj = COA
  renderObj {

    1 = TEXT  
    1 {
      required=1
      wrap = <tr><td colspan="2" class="gloss-box-compo-title"><span class="bodytext"><b>|</b></span></td></tr>
      field=header
      typolink.parameter.field=pid
    } 

    2 = IMAGE
    2 {
      required=1
      wrap = <tr><td align="left" valign="top" width="99">|</td>
      file.import=uploads/pics/
      file.import.field=image

    }
    3 = TEXT  
    3 {
      required=1
      wrap = <td class="gloss-box-compo-text" align="left" valign="top" width="549"><span class="bodytext">|</span></td>
      field=bodytext
    } 


   }

Vielen Dank!

meta_ak

PPP01 ·

Hi, versuche es mal so:

#
3 {
      required=1
      wrap = <td class="gloss-box-compo-text" align="left" valign="top" width="549"><span class="bodytext">|</span></td>
      field=bodytext
      parseFunc =< lib.parseFunc_RTE

    }

Ich weiß allerdings nicht, wie sich die <p>'s des bodytext mit deinen td's vertragen.

meta_ak ·

Ich habs!

Anstatt:

parseFunc =< lib.parseFunc_RTE

Diesen Schnippsel eingefügt:

parseFunc {
   makelinks = 1
   makelinks.http.keep = path
   makelinks.http.extTarget = _blank
   makelinks.mailto.keep = path
   tags {
     link = TEXT
     link {
       current = 1
       typolink.extTarget = _blank
       typolink.target=_self
       typolink.parameter.data = parameters : allParams
     }
   }
    }

Grüße

meta_ak

freitag ·

Hallo,

ich habe auch das Problem.

Folgender Code:

tt_content >
tt_content = CASE
tt_content {
  key.field = header_layout
  0 = COA
  0 {
	10 = TEXT
		10.field = header
		10.wrap = <h1>|</h1>
		20 = TEXT
		20.field = bodytext
		20.wrap = <p class="bodytext">|</p>
                                30 = IMAGE
                                30.file.import = uploads/pics/
                                30.file.import.field = image
                                30.wrap = <div class="img">|</div>
                }
	1 = COA
	1 {
		10 = TEXT
		10.field = header
		10.wrap = |
		20 = TEXT
		20.field = bodytext
		20.wrap = <div id=text_1>|</div>
	}
	2 = COA
	2 {
		10 = TEXT
		10.field = header
		10.wrap = |
		20 = TEXT
		20.field = bodytext
		20.wrap = <div id=text_2>|</div>
	} 

}

Dadurch werden die Links nicht mehr dargestellt ( <link 31="" -="" internal-link="" öffneteineninternenlinkimaktuellenfenster="" />xyz</link> ), nehme ich diesen Block raus, funzt es wieder.

Was kann ich da machen? Mit den obigen Beschreibungen kann ich nicht so richtig was anfangen.

freitag ·

Danke für die Antwort !
Ich habe das jetzt mal eingesetzt, wobei ich nicht so recht wußte wo:

tt_content >
tt_content = CASE
tt_content {

  key.field = header_layout
  0 = COA
  0 {
	10 = TEXT
		10.field = header
		10.wrap = <h1>|</h1>
		20 = TEXT
		20.field = bodytext
                                parseFunc < tt_content.text.20.parseFunc
		20.wrap = <p class="bodytext">|</p>                                30 = IMAGE
                                30.file.import = uploads/pics/
                                30.file.import.field = image
                                30.wrap = <div class="img">|</div>
                }
	1 = COA
	1 {
		10 = TEXT
		10.field = header
		10.wrap = |
		20 = TEXT
		20.field = bodytext
		20.wrap = <div id=text_1>|</div>
	}
	2 = COA
	2 {
		10 = TEXT
		10.field = header
		10.wrap = |
		20 = TEXT
		20.field = bodytext
		20.wrap = <div id=text_2>|</div>
	} 
}

Es hat sich eigentlich nichts geändert, ausser dass nach jedem Textabsatz jetzt ein "30 = IMAGE" im Quellcode steht.