Hallo Leute,
ich arbeite noch nicht lange mit Typo3 und hätte bitte ein Grundsatzfrage.
Ich möchte einen Teaser mit einem vordefinierten HTML Gerüst mit Typo3 Inhalten befüllen.
|-----------|
| Bild |
|-----------|
|Überschrift|
|-----------|
| Text |
|-----------|
| more-Link |
|-----------|
Wenn ich mit tt_content arbeite bekomme ich ja Tagsoup aus dem RTE.
Ich habe schon mit renderObj gearbeitet, stosse aber bei einem Bild oder more Link noch an Grenzen.
Können mir bitte die erfahreren User sagen, wie Sie vom tt_content abweichende Infoblöcke erstellen?
Was ist die beste Methode?
renderObj mehr ausreizen? Eigenen Inhaltstyp erzeugen, eine Extension,...?
Habt Dank.
Gruss
Rene
Hallo Rene,
ich würde das renderObj nehmen! Schau dir mal dazu das TS von meiner extension rgteaser an. Wegen Bildern empiehlt sich ein Blick in den Thread:
#56553
viel erfolg
georg
Mahlzeit just2b,
danke für den Input hat mir geholfen beim "more" Link und Bild.
Aber ich hab noch ein Problem und zwar der korrekten Verlinkung des [mehr] Links.
Das Ziel wird vom Textersteller vorgeben, das Linkziel muss frei definierbar sein und ich da reinzwängen können.
Hätte da ev. bitte noch jemand nen Tipp?
BTW: Mein TS Script falls wer mal sowas brauchen könnte.
subparts.SEKTIONS = COA
subparts.SEKTIONS.10 = CONTENT
subparts.SEKTIONS.10 {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=0
}
renderObj < tt_content
renderObj = COA
renderObj {
// wraps the whole text
stdWrap.required = 1
stdWrap.wrap = <div class="section_entry">|</div>
//image
10 = IMAGE
10 {
required = 1
wrap = |
file.import=uploads/pics/
file.import.field=image
file.width=227
file.height=50
}
// se_body
20 = COA
20 {
wrap = <div class="se_body">|</div>
//header
10 = TEXT
10 {
field = header
wrap = <h2>|</h2>
required = 1
}
//bodytext
20 = TEXT
20 {
field = bodytext
parseFunc =< lib.parseFunc_RTE
required = 1
//Erzeugt P die im RTE eingegeben werden
encapsLines {
encapsTagList = p
remapTag.DIV = P
wrapNonWrappedLines = <P>|</P>
innerStdWrap_all.ifEmpty =
}
}
}
60 = TEXT
60 {
value = [mehr]
typolink.parameter.field=pid
typolink.parameter.dataWrap=|#{field:uid}
wrap = <div class="se_more"><p>|</p></div>
}
}
}
Hallo,
leider nicht ganz verstanden. Das Ziel des Links soll vom Editor gewählt werden können? Hmmm dann muss man sich überlegen woher man das bekommen könnte...
Zur zeit kommt das ja von der pid (zeile 61).
Eine Idee wäre das Contentelement auf "text mit bild" stellen und dann image_link zu nehmen. sonst ein eigenes feld nehmen
oder alls falsch verstanden?
georg
Hallo just2b,
da ich wegen dem Bild schon "Text mit Bild" verwende ist das ne sehr gute Idee, ich probier das gleich aus, wenn es klappt werde ich abschließend nen Post mit der kompletten Lösung posten, damit der nächste nur mehr richtig suchen muss. :-)
Herzlichen Dank vorerst.
Problem: Ein Teasergerüst soll mit Daten aus tt_content befüllt werden ohne den HTML Output von tt_content. Der "mehr" Link und die Verlinkung des Bildes sollen frei wählbar sein.
So soll der Teaser aussehen:
|-----------|
|Bild + Link|
|-----------|
|Überschrift|
|-----------|
| Text |
|-----------|
| Mehr-Link |
|-----------|
Lösung:
Ein Teaser der mit tt_content + Seitentyp "Text mit Bild" befüllt wird. Da wir aber nur die Inhalte benötigen und nicht das mitgelieferte HTML Gerüst von tt_content verwenden wir Typoscript und renderObj.
Die Verlinkung der Beiträge übernimmt der Bildverweis in "Text mit Bild".
Weitere Erklärungen liefert das kurze Typoscript
subparts.SEKTIONS = COA
subparts.SEKTIONS.10 = CONTENT
subparts.SEKTIONS.10 {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=0
}
renderObj < tt_content
renderObj = COA
renderObj {
// wraps the whole text
stdWrap.required = 1
stdWrap.wrap = <div class="section_entry">|</div>
//image
10 = IMAGE
10 {
required = 1
wrap = |
file.import=uploads/pics/
file.import.field=image
file.width=227
file.height=50
imageLinkWrap = 1
imageLinkWrap {
enable.field = image_link
typolink.parameter.field = image_link
}
}
// se_body
20 = COA
20 {
wrap = <div class="se_body">|</div>
//header
10 = TEXT
10 {
field = header
wrap = <h2>|</h2>
required = 1
}
//bodytext
20 = TEXT
20 {
field = bodytext
parseFunc =< lib.parseFunc_RTE
required = 1
//Erzeugt P die im RTE eingegeben werden
encapsLines {
encapsTagList = p
remapTag.DIV = P
wrapNonWrappedLines = <P>|</P>
innerStdWrap_all.ifEmpty =
}
}
}
60 = TEXT
60 {
value = [mehr]
typolink.parameter.field = image_link
wrap = <div class="se_more"><p>|</p></div>
}
}
}
Danke nochmals an just2b für die hilfreichen Tipps!
HTH
Hallo,
das war doch mal ne schöne Kommunikation!
Ich sperr den Beitrag, damit das übersichtlich bleibt, Fragen zu dem Thread mit Verweis auf diesen bitte in einem neuen stellen
lg aus Linz
georg