Hallo alle,
habe wieder das nächste Problem und leider alle Dokus und Internet erfolglos abgesucht.
WIE ????? kann ich die Breite und die Position der einzelnen Columns im Setup Bereich meines Templates (also keine html-Vorlagen) angeben?
Das mit den html-Vorlagen kommt erst später, wenn ich's begriffen habe :-)
Setup:
config.frameReloadIfNotInFrameset = 0
mod.SHARED.colPos_list = 0,1,2,3
styles.content.get = CONTENT
styles.content.get {
table = tt_content
select.orderBy = sorting
select.where = colPos=0
}
# get content.left
styles.content.getLeft < styles.content.get
styles.content.getLeft.select.where = colPos=1
# get content.right
styles.content.getRight < styles.content.get
styles.content.getRight.select.where = colPos=2
# get content.margin
styles.content.getBorder < styles.content.get
styles.content.getBorder.select.where = colPos=3
outer_frameset = PAGE
mainpage = PAGE
menu = PAGE
top = PAGE
rightpage = PAGE
bottom = PAGE
topmenu = PAGE
...etc.
--------------------------------
es muss doch irgendetwas wie
Column1.xy =
oder
Column.width =
geben
danke Stephan
Hi,
ich bin nicht ganz sicher, ob ich verstehe was Du willst. Also ich gehe jetzt mal von einem mehrspaltigen Tabellensatz aus (?).
Du könntest zum Beispiel die einzelnen Contentbereiche in Tabellenzellen wrappen, die Du mit einer Breitenangabe versiehst. Das müsste eigentlich schon mit
styles.content.getLeft.wrap = <td width="30%">|</td>
funktionieren. Du musst dann in der PAGE Direktive noch dafür sorgen, dass auch der Tabellenkopf ausgegeben wird.
Etwa so:
PAGE.10 = TEXT
PAGE.10.value = <table cellspacing="0" cellpadding="0" border="0">
PAGE.15 = TEXT
PAGE.15.value = <tr>
PAGE.20 < content.getLeft....
PAGE.25 < content.getRight...
PAGE.30 = TEXT
PAGE.30.value = </tr>
PAGE.35 = TEXT
PAGE.35.value = </table>
Ich habe den Code nicht getestet, aber in die Richtung müsste es gehen. Ein ausführlicheres (und sicher besseres) Beispiel findest Du unter
Unter https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Content/Index.html
Ich hoffe, das bringt Dich ein kleines Stück weiter...
Gruß
Thomas
Hy tmallee,
danke hat mir etwas geholfen.
allerdings wird nur der erste Content nun mit 70% angezeigt.
Der zweite ist schon wieder bei 100 %.
Ich benutze mehrere Frames
1. top -> oberer Frame für das Logo etc.
2. topmenu -> zweiter Frame von oben für das spätere horizontale Menu.
3. menu -> dritter Frame links für das Hauptmenu.
4. mainpage -> Frame für eigentlichen Contentbereich
5. pagerechts -> soll später für news etc. sein
6. bottom -> unterer Frame für Fremdlogos etc.
Nun möchte ich zwei Contentbereiche auf der mainpage einrichten
mit 70% und 30 % ( styles.content.get + styles.content.getright).
wenn ichs recht verstanden habe, wird hiermit überhaput der Content aus der table tt_content geholt:
# get content
styles.content.get = CONTENT
styles.content.get {
table = tt_content
select.orderBy = sorting
select.where = colPos=0
}
# get content.left
styles.content.getLeft < styles.content.get
styles.content.getLeft.select.where = colPos=1
# get content.right
styles.content.getRight < styles.content.get
styles.content.getRight.select.where = colPos=2
# get content.margin
styles.content.getBorder < styles.content.get
styles.content.getBorder.select.where = colPos=3
Hiermit habe ich aber doch Probleme. nur der erste Content von dreien wird mit 70% angezeigt die anderen darunter mit 100%.
der rechte Content wird zum Schluss, als vierter angezeigt.
#mainpage.10 = CONTENT
mainpage.10 = TEXT
mainpage.10.value = <table cellspacing="0" cellpadding="0" border="0" width="70%">
mainpage.15 = TEXT
mainpage.15.value = <tr>
mainpage.20 < styles.content.get
mainpage.20 < styles.content.get.wrap = <td width="70%">|</td>
mainpage.21.table = tt_content
mainpage.30 = TEXT
mainpage.30.value = </tr>
mainpage.35 = TEXT
mainpage.35.value = </table>
#mainpage.100 = CONTENT
mainpage.100 = TEXT
mainpage.100.value = <table cellspacing="0" cellpadding="0" border="0" width="30%">
mainpage.105 = TEXT
mainpage.105.value = <tr>
mainpage.120 < styles.content.getRight
mainpage.120 < styles.content.getRight.wrap = <td width="30%">|</td>
mainpage.121.table = tt_content
mainpage.130 = TEXT
mainpage.130.value = </tr>
mainpage.135 = TEXT
mainpage.135.value = </table>
irgendeine Idee
danke Stephan
PS: help to prevent the global warming by writing cool software
Hi Stephan,
stimmt, das tt_conten holt die Inhalte lediglich aus der Datenbank. Die weitere Formatierung bzw. HTML Einbindung ist Deine Sache.
Zu meinem Beispiel (hab's diesmal getestet ;-)):
1. wir haben einen Inhaltsbereich "Normal"
2. und einen Inhaltsbereich "Links" innerhalb unserer Seite.
Wir geben den Inhalt aus "Normal" in eine 70% große Tabellenzelle aus und den Inhalt aus "Links" direkt daneben in eine 30% große Tabellenzelle. Die gesamte Tabelle ist 100% groß, nimmt also den maximal zur Verfügung stehenden Platz ein.
Hier ist der Code:
# Seitendefinition (hier: einzelne Seite)
mainpage = PAGE
mainpage.typeNum = 0
# Tabelle für die Seite definieren
mainpage.10 = TEXT
mainpage.10.value = <table cellspacing="0" cellpadding="0" border="1" width="100%">
mainpage.15 = TEXT
mainpage.15.value = <tr>
# Inhaltsbereich "Normal" anzeigen
mainpage.20 < styles.content.get
mainpage.20.wrap = <td width="70%" valign="top">|</td>
# Inhaltsbereich "Links" anzeigen
mainpage.25 < styles.content.getLeft
mainpage.25.wrap = <td width="30%" valign="top">|</td>
# Tabelle schliessen
mainpage.30 = TEXT
mainpage.30.value = </tr>
mainpage.35 = TEXT
mainpage.35.value = </table>
Das entscheidende passiert mit den styles.content.get Aufrufen und den dazugehörigen wrap Anweisungen. Das bedeutet: hole den Text aus dem entsprechenden Inhaltsbereich und umschließe diesen inhalt mit dem was, in wrap steht.
Wichtig: Ich hatte in meinem Template noch das tt_content statisch eingebunden. Noch ein Tipp: beim Testen immer mal den Cache leeren....
Grüße
Thomas