Zum Inhalt springen

wrap um jeden datensatz

Erstellt am 21. August 2007 · 6 Antworten · letzte Antwort am 19. Januar 2010

Tags: Frage

elrond ·

Hallo,

ich lese mittels CONTENT Daten aus, die auch an meinem marker angezeigt werden.

INHALT = CONTENT
INHALT {
	table = tt_content
	select {
		orderBy = sorting
		#seitenposition
		where = colPos=0
		} #select
	}#INHALT

irgendwie schaffe ich es nicht ein wrap für jeden datensatz zu erzeugen... für das gesamte konstrukt schon, aber eben nicht pro DS

cope ·

Hallo elrond,

wieso geht renderObj bei Dir nicht???

LG
Cope

P.S. Kommentare immer in eine eigene Zeile im TS, das # ist nicht wie // bei C++

cope ·

Hallo elrond

im Grunde ganz einfach

INHALT = CONTENT
INHALT {
        table = tt_content
        select {
                orderBy = sorting
                #seitenposition
                where = colPos=0
                }
        renderObj = TEXT
        renderObj.field = title
        renderObj.wrap = <div class="fasel"><h1>|</h1></div>
        }

renderObj kann irgend ein cObject sein, COA oder auch wieder CONTENT....

LG
Cope

elrond ·

hmm,

mein eigentliches ziel ist

1. einen div-container um den datensatz zu bauen
2. die überschrift meinen bedürfnissen anzupassen

ich versuche es gerade hiermit

INHALT = CONTENT
INHALT {
		table = tt_content
		select {
			orderBy = sorting
			#seitenposition
			where = colPos=0
			} #select
		renderObj < tt_content
		renderObj {
			wrap = <div id="pro_ds"> | </div>
			header.10 = TEXT
			header.10.field = header
			header.10.wrap = <h2> | </h2>
			}
		}#INHALT

ich setze renderObj<tt_content damit ich nicht sämtliche Formatierung verliere. Danach versuche ich den wrap für den gesamten datensatz (Header+inhaltsdaten)

wrap = <div id="pro_ds"> | </div>

im objectbrowser sieht's mE. auch ganz gut aus. Allerdings wird mein wrap für den datensatz hinter das case des renderObj gehängt.

Die Anpassung für header sieht ok aus, funktioniert aber trotzem nicht...

für die Überschrift definiere ich jetzt lib.stdheader für diesen part einfach um. das funxt:

#überschift anpassen
lib.stdheader >
lib.stdheader = CASE
lib.stdheader {
	key.field = header_layout
	1 = TEXT
	1.field = header
	1.wrap = <h2> | </h2>
	default < .1
	}

und so funktionierts auch mit dem warp für den datensatz, danke für den denkanstoss

renderObj = COA
renderObj.wrap = <div class="fasel">|</div>
renderObj.10 < tt_content

damit die restlichen definitionen nicht verlorengehen ist die tt_content copie notwendig. Hat jemand bessere vorschläge? ich würde mich freuen...

elrond ·

bitte nicht meckern, aber ich muss den thread noch mal aufwärmen...

was ich da im letzten post geschrieben habe funktioniert gut, ich erhalte einen wrap um jeden datensatz. Nun stehe ich vor dem problem, dass ich eine trennlinie zwischen den einzelnen artikeln brauche. ich realisiere das über einen eigenen div-container, für den eine entsprechende borderline definiert ist. soweit sogut. das ding soll natürlich nach dem letzten Eintrag nicht angezeigt werden.

das normale wrap funktioniert. versuche ich aber das wrap aufzutilen mittel |*| wird nur der erste teil verwendet. ich habe keine idee warum???

INHALT = CONTENT
INHALT {
	table = tt_content
	select {
		orderBy = sorting
		#seitenposition
		where = colPos=0
		} #select
        renderObj = COA
        renderObj {
        	stdWrap.wrap= *s** | *****e* |*| *****ms** | ****me*** |*| ***ES***|**EE*
			        	}
	renderObj.10 < tt_content
	}#INHALT

die konstruktion verhält sich so, als wäre jeder datensatz der erste Datensatz...

shiva2012 ·

ich hänge mich hier mal ran, da ich fast das gleiche problem habe, mit der hier geschilderten lösung aber nicht weiterkomme.

ich kann nur entweder die überschrift des datensatzes oder den text auslesen - wie bekomme ich beides hin?

der wrap ist bei mir etwas länger (runde ecken hintergrund - spielt hierfür aber keine rolle):

page.10.subparts.CONTENT_MAIN = CONTENT
page.10.subparts.CONTENT_MAIN {
        table = tt_content
        select {
                orderBy = sorting
                where = colPos=0
                }
        renderObj = TEXT        
        renderObj.field = bodytext
        renderObj.wrap = <div class="ro"><div class="lo"><div class="ru"><div class="lu"><div class="inhalt">|</div></div></div></div></div>
        }

hiermit bekomme ich den text - wenn ich bodytext durch header ersetze, bekomme ich nur die überschrift. (würde auch gern beides unterschiedlich wrappen)
leider habe ich erst vor kurzem eine typo3 weiterbildung gemacht und es mangelt noch stark an typoscript wissen. wenn also jemand direkt den code schreiben könnte wäre ich sehr dankbar.