Zum Inhalt springen

Verständnisfrage tt_content mit renderObj

Erstellt am 15. März 2007 · 6 Antworten · letzte Antwort am 15. März 2007

Tags: Frage

GRRE ·

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

just2b ·

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

GRRE ·

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 = &nbsp;
                } 
            }
        }
        60 = TEXT
        60 {
            value = [mehr]
            typolink.parameter.field=pid
            typolink.parameter.dataWrap=|#{field:uid}
            wrap = <div class="se_more"><p>|</p></div>
        }
    
    }      
}
just2b ·

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

GRRE ·

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.

GRRE ·

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 = &nbsp;
                } 
            }
        }
        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

just2b ·

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