Zum Inhalt springen

Der wrap um die content-elemente

Erstellt am 18. Oktober 2004 · 3 Antworten · letzte Antwort am 20. Oktober 2004

Tags: Frage

tfjosmi ·

Hallo,

Ich lese das Forum schon seit einiger Zeit und es war mir stets eine gute Hilfe!
Ich schreibe hier jetzt meinen ersten Beitrag, weil ich den wrap mittlerweile bombardiere, gerne wissen würde, wie ich ihn subtiler erledigen kann und die Wraphaz bisher mir sehr lehrreich war und mich (und hier vielleicht auch dich) sicher weiterbringen wird.
Auf meiner Seite gibt es eine Statuszeile, die neben content-elementen auch noch andere (später dynamisch generierte) Informationen enthalten soll.
Und zwar so:

Das ist ein content-element. Die Immerda-Info. Die dynamische Info.

page.20 < styles.content.getRight

wrapt den rechten Spalteninhalt mit

<p style="margin:0 0 0 0;">|</p>

warum? was will der wrap? ich will hier keinen Absatz. Ich will den wrap mit ner Zwille erlegen und brüte also über tsref und browse Objekte und finde aber nirgendwo den Eintrag, um den gesamten content-bodytext-wrap zu ändern.

page.20 = CONTENT
page.20 {
  table = tt_content
  select.orderBy = sorting
  select.where = colPos=3
  wrap = wrap = <b> | </b>
}

ist genau dasselbe.

ich verstehe getText nicht:

page.30 = COA
page.30.20 = COA
page.30.20 {
   10 = TEXT
   10.value =  Titel: {page:title}
   10.insertData = 1
   10.wrap = <b> | </b>
}

liefert ja das erhoffte Testergebnis.
Aber es soll "bodytext" aus "tt_content" mit "colPos=3" ausgelesen werden.
Und nicht "title" aus "pages".
Ich habe viel rumprobiert und gelesen, ob mit getText diese querie machbar ist,aber nichts gefunden. Ich schieße mit Kanonen.

und RECORDS?

page.40 = RECORDS
page.40.source = 134
page.40.tables = tt_content
page.40.conf.tt_content = TEXT
page.40.conf.tt_content {
   field = bodytext
   wrap = <b> | </b>
}

steil. 134? Aber: .source selektiert aus tt_content die uid und nicht die pid,für die ich "this" hätte angeben können, sondern die uid. und sowieso die Spalte...
ich habe das Thema jedenfalls erstmal beiseitegelegt und bin dann irgendwann über select pro gestolpert,weil ich eine individuelle History für jeden Frontenduser bauen wollte.
Ich bin begeistert:

SELECT tt_content.bodytext
FROM pages
INNER JOIN tt_content ON tt_content.pid=pages.uid
WHERE 1=1 ###WHEREADD###
AND tt_content.colPos=3
AND tt_content.pid=pages.uid

aber bei diesem Vogel komme ich auch mit der Bombe nicht weiter. Weil ich das Ergebnis der Abfrage nicht für jede Seite einfügen will...
Wenn ich select pro in mein Template integriere:
Config:

plugin.gstselectpro.queryPid = 126

Setup:

seite.210 = COA
seite.210.10 < plugin.tx_gstselectpro_pi1
seite.210.wrap = <div id="Status"> | </div>

läuft scheinbar erstmal alles gut, aber wenn auf einer Seite mal Nichts in der entsprechenden Spalte steht:

Ihre Abfrage lieferte kein Ergebnis.

Und ich komme ich mit der Abfrage durcheinander, weil der aktuelle Bezugspunkt nicht gesetzt wird. Merkwürdige Ergebnisse: Die Statuszeile einer Seite enthält auch deren Unterseite.
Und zuguterletzt: Ich kann queries von select pro nun nicht mehr als content-element einfügen, wegen dem Bezugspunkt...
ich weiss also nicht mehr recht weiter und drehe mich im Kreise mit meiner Statuszeile.

Grüße
Johannes

m.​ ·

und immer wieder das gleiche. Sorry, aber es steht doch so oft im Forum!

Die hier muss ins Setup:

// Folgender Code löscht das Margin 0 0 0 0 aus dem P Tag *********************************************
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {
P.style=
PRE.style=
}

und das hier Deine Inhaltselemente

// Formatiert die Inhaltselemente
tt_content.text.20.textStyle.altWrap = |

Deinen Inhalt aus der Normalspalte (colPos = 0) kannst Du so holen

page.10 < style.content.get

Deinen Inhalt aus der linken Spalte (colPos = 1) kannst Du so holen

page.20 < style.content.getLeft

Deinen Inhalt aus der rechten Spalte (colPos = 2) kannst Du so holen

page.30 < style.content.getRight

Deinen Inhalt aus der Randspalte (colPos = 3) kannst Du so holen

page.40 < style.content.getBorder

Deine Überschriften kannst Du so formatieren

lib.stdheader.10.1.fontTag = |

Grüße aus Frankfurt

tfjosmi ·

Danke für Deine Antwort,
auch wenn sie so pauschal ist und nachdrücklich das Gefühl hinterlässt, dass Du meinen Beitrag gar nicht richtig gelesen hast.
Entschuldige, aber ich will doch nicht die Parameter Aller Absätze um content-elemente ändern, sondern die Unterteilung in Absätze unterbinden. Und nicht global, sondern nur in meiner Statuszeile.
Die Definitionen in content(default) kenne ich, das war ja mein Ausgangspunkt:

page.20 < styles.content.getRight

aber genug.

Ich bin auf eine Lösung gekommen, weil ich während der Recherche über select pro auf renderObj gestoßen bin:

seite.20 = COA
seite.20.wrap = <div id="Status"> | </div>

seite.20.10 = CONTENT
seite.20.10 {
   table = tt_content
   select.where = colPos = 3
   renderObj = TEXT
   renderObj.field = bodytext
}
seite.20.20 = TEXT
seite.20.20.value = &nbsp;ist online.

Funktioniert bestens:

<div id="Status">Mein Status ist online.</div>

Ich habs lange nicht geglaubt und ich versteh noch nicht so richtig wie renderObj...

Es ist so spät.
Johannes

m.​ ·

Hallo Johannes,

die Funktionalität des Renderings ist ziemlich komplex, es kaskadiert und wird auf Seite 336-338 im Open Source Verlag Buch recht verständlich beschrieben. Man benötigt die TSREF, doch mit der wurde ich auch nicht glücklich weil ich das Sytem nicht begriffen habe.
Es ist wie folgt, ein Contentobject hat entsprechend der lib-classes verschiedene Funktionalitäten, hier ist ein Object IMAGE, das ist vom Data type her eine ImgRecource, diese hat als Data type wiederum u.a. stdWrap, stdWrap hat getText usw. Das erklärt, warum man um im Setup dem IMAGE ein file anhängen kann und auch ein wrap.

der störende

<p style="margin:0 0 0 0;">|</p>

schalteset Du nur über das

// Folgender Code löscht das Margin 0 0 0 0 aus dem P Tag *********************************************
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {
P.style=
PRE.style=
}

aus.
Es ist, wenn ich es richtig verstanden habe ein Relikt aus der Zeit, in der CSS noch nicht wirklich verbreitet und funktioniert hat.

Dein

page.20 = CONTENT
page.20 {
table = tt_content
select.orderBy = sorting
select.where = colPos=3
wrap = wrap = <b> | </b>
}

konnte deshalb nicht funktionieren, weil Du das wrap = wrap geschrieben hast. Es müsste wohl nichts passiert sein.

und bei

page.30 = COA
page.30.20 = COA
page.30.20 {
10 = TEXT
10.value = Titel: {page:title}
10.insertData = 1
10.wrap = <b> | </b>
}

hätte schon

page.30.20 < styles.content.getRight

gereicht. Du musst ja dem Inhalt des Datensatzes überhaupt keinen Titel geben, kein Titel, keine Anzeige.
Mich stören auch die ganzen Tabellen, clear.gifs und Vorformatierungen, deshalb schmeiße ich sie immer komplett raus und mache alles über CSS. Bei der zu erwartenden Entwicklung von Typo 3 wird es wohl auch in diese Richtung gehen.

Sorry nochmal, dass ich Deinen Text nicht genau gelesen habe und vor allem nicht ein zweites, dann hätte ich eher verstanden was Du meintest, aber leider steht am Anfang:

<p style="margin:0 0 0 0;">|</p>
warum?

da reagiert man halt erstmal drauf....

Grüße aus Frankfurt