Zum Inhalt springen

Tabellenformatierung, niemand kann das Problem vieler lösen?

Erstellt am 14. Oktober 2003 · 16 Antworten · letzte Antwort am 21. Mai 2006

Tags: Inhaltselemente, HTML & CSS, Frage

goTo ·

Als ich das Forum nach meine Problem der Tabellenformatierung durchforstet habe, mußte ich feststellen, das niemand eine Antwort darauf hat, wie man verschiedene Zellen unterschiedlich ansprechen und formatieren kann.

Echt schade, das muss doch irgendwie gehen!!

Zudem wird um eine Tabelle (Seiteninhalt) eine <table> mit z.B. width="600" gelegt.
Wie komme ich an diese Größe?
Habe nichts im Object Browser gefunden.

Please Help!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Julian ·

Hi,

ich glaube, das geht gar nicht so einfach, deshalb hat bisher niemand auf die Postings geantwortet. Ich persönlich finde es auch viel einfacher, Tabellen als HTML-Element einzubinden. Formatierungen stehen in beiden Feldern (ob nun störende "|" oder etwas HTML-Code) - aber als HTML-Element kann man die Tabelle eben vollständig selber formatieren - und muß sich nicht mit den Einschränkungen des Tabellen-Elements herumschlagen. Wenn du mich fragst - füge deine Tabellen als HTML-Element ein. Da hast du weitaus weniger Ärger mit 🙂

Julian

nerphunk ·

Die Tabelle als HTML einzubinden geht zwar, aber wirklich stringent ist das nicht. Damit macht mann sich ja den Vorteil eines CMS (Trennung von Design und Content) zunichte.

Aber leider werde ich wohl auch nicht darum herumkommen 😢

servus aus München

Nepomuk

the-dude ·

Probiers mal damit:

tt_content.stdWrap.wrap = 
tt_content.text.20.textStyle.altWrap = 
lib.stdheader.10.1.fontTag = 
lib.stdheader.10.1.wrap2 = 
config.stat_typeNumList = 
tt_content.text.20.parseFunc.tags.link.typolink.wrap = |
tt_content.text.20.parseFunc.tags.link.typolink.ATagParams =

So kannst du eigentlich den gesamten Content wrapen, ich habe somit eine Tabelle erzeugt und verschiedene Hintergrundfarben etc. für header und bodytext formatiert, wenn du auch noch images und so weiter formatieren willst mußt du tt_content.image anpassen uns so weiter.
Mir fehlt jetzt nur noch die Condition um abzufragen was für eine Colpos es sich handelt und wola.
Vielleicht kannst du mir ja helfen ?

thx
the-dude #paralyzed#

the-dude ·

Du kannst entweder deinen typoscript-ansatz nehmen und die Tabelle um titel
und bodytext herumwrappen, z.B. so:

# Get Header for titletext
temp.head-left = CONTENT
temp.head-left {
  table = tt_content
  select {
    pidInList = this
    where = colPos=1
  }
   renderObj = COA
   renderObj.10 = TEXT
   renderObj.10 {
     field = header
     wrap = <tr><td> | </td></tr>
   }
   renderObj.20 {
     field = bodytext
     wrap = <tr><td> | </td></tr>
  }
  stdWrap.wrap = <table> | </table>
}

Damit verlierst du aber jeglicher rendering-funktion von content(default),
also z.B. die verschiedenen headerlayouts, Bilder,.... also alles, was nicht
in den Feldern tt_content.header bzw. tt_content.bodytext steht, wird auch
nicht berücksichtigt.

Besser ist wahrscheinlich, wenn du die wraps direkt im
tt_content....-Bereich im Typoscript unterbringst, also:

tt_content.stdWrap.wrap = <table> | </table>

außen um das gesamte content-element.

Für den header gibt es eine Konstante:

content.wrap.header = <tr><td> | </td></tr>

Schwieriger wird's mit dem Restcontent. Hier musst du für jeden content-typ
den
richtigen wrap finden.
Dazu schaust du im Objectbrowser nach, was für cObjects die einzelnen Typen
sind und dann in der TSREF, wie du diese wrappen kannst. z.B.:
tt_content.bullets.20 = CASE, in der TsRef siehst, dass CASE eine property
stdWrap hat, der wrap ist also:

tt_content.bullets.20.stdWrap.wrap = <tr><td> | </td></tr>

Der nächste Typ ist Table. Auch Case, also:

tt_content.table.20.stdWrap.wrap = <tr><td> | </td></tr>

text = TEXT, d.h.:

tt_content.text.20.wrap = <tr><td> | </td></tr>

Durch Imagewrap musst dich selber wühlen, wenn du's brauchst, das is mir
jetzt zu kompliziert ;-)

*nix getestet*

the-dude 8-)

yakuza ·

ja ich schlage mich auch gerade damit rum o.O

mein bisheriger erfolg:

  #Auszug aus meinem Template:
  table < tt_content.table
  table.20.default.tableStyle.cellpadding = 2
  table.20.default.split.1.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.1.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.2.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>
  table.20.default.split.2.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>

nun will ich aber auch cellspacing und/oder border der tabelle selbst besitmmen. ich habe schon versucht im TS die zeile:
table.20.default.tableStyle.cellspacing = 10
einzufügen, aber das nimmt er ja nicht an. es scheint hier nur
table.20.default.tableStyle.cellspacing.field = ***
zu geben (ebenso bei border)!?

wie kommt man nun an cellspacing und border ran? #paralyzed#

ciena ·

vielen, vielen Dank für Eure Hilfe, anscheinend hat typo da ein Lücke.
Ich mach es halt mit dem Seiteninhalt "Tabelle" da der "kunde" keine ahnung von html hat und die tabellen selber pflegen möchte!

Probiers mal mit dem wrap!

viele grüße

nerphunk ·

ich habe das selbe Problem, der Kunde will seine Website selbst pflegen und sich nicht mit HTML herumschlagen.

Folgender Ansazt geht auf jeden Fall in die richtige Richtung:

table < tt_content.table 
  table.20.default.tableStyle.cellpadding = 2 
  table.20.default.split.1.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td> 
  table.20.default.split.1.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td> 
  table.20.default.split.2.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td> 
  table.20.default.split.2.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>

Problem:

Man kann nur:

- erste reihe erste spalte
- erste reihe alle weiteren spalten
- alle weiteren reihen erste spalte und
- alle weiteren reihen alle weiteren spalten

formatieren. Weitere Formatierungen (z.B. jede zweite Zeile in einer anderen Hintergrundfarbe) sind leider nicht möglich. Wahrscheinlich bleibt nur die Möglichkeit eine eigene Extension zu schreiben, oder fällt noch irgendjemand etwas weniger aufwendiges ein?

servus

Nepomuk

yakuza ·
yakuza schrieb

ja ich schlage mich auch gerade damit rum o.O

mein bisheriger erfolg:

  #Auszug aus meinem Template:
  table < tt_content.table
  table.20.default.tableStyle.cellpadding = 2
  table.20.default.split.1.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.1.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.2.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>
  table.20.default.split.2.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>

nun will ich aber auch cellspacing und/oder border der tabelle selbst besitmmen. ich habe schon versucht im TS die zeile:
table.20.default.tableStyle.cellspacing = 10
einzufügen, aber das nimmt er ja nicht an. es scheint hier nur
table.20.default.tableStyle.cellspacing.field = ***
zu geben (ebenso bei border)!?

wie kommt man nun an cellspacing und border ran? #paralyzed#

hier nun die lösung:
wenn man nun folgendes schreibt:
#Wert löschen, der im Content-Element Standard ist:
table.20.default.tableStyle.cellspacing.field >

dann kann man auch
table.20.default.tableStyle.cellspacing = [WERT]

eingeben. Bei border müsste das auch gehen!

nerphunk ·

Hallo Zusammen,

die Extension Advanced Table (gibts erste eit ein paar Wochen) loest oben genannte Probleme. 8-)

servus

Nepomuk

prakti ·

[​quote="nerphunk"]Sorry, die Extension heisst Extended Table. :o

hi, wie wirkt sich diese extension aus, also wo kann ich sie sehen, wenn ich sie installiert hab

mfg prakti

prakti ·

hi,

aber die extended table löst mir nicht dass Problem in der Tabelle eine einzelne Überschrift zu verändern oder bin ich da auf dem Holzweg ..

mfg prakti

Unbekannter Benutzer ·
yakuza schrieb

ja ich schlage mich auch gerade damit rum o.O

mein bisheriger erfolg:

  #Auszug aus meinem Template:
  table < tt_content.table
  table.20.default.tableStyle.cellpadding = 2
  table.20.default.split.1.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.1.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#A3BDD6"><b>|</b></td>
  table.20.default.split.2.split.1.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>
  table.20.default.split.2.split.2.wrap = <td valign="top" class="bodytext" bgcolor="#E3EBF3">|</td>

nun will ich aber auch cellspacing und/oder border der tabelle selbst besitmmen. ich habe schon versucht im TS die zeile:
table.20.default.tableStyle.cellspacing = 10
einzufügen, aber das nimmt er ja nicht an. es scheint hier nur
table.20.default.tableStyle.cellspacing.field = ***
zu geben (ebenso bei border)!?

wie kommt man nun an cellspacing und border ran? #paralyzed#

Ich hab das gleiche Skript mit anderen Klassenname eingebaut, doch bei mir funktioniert nicht mal das. Wenn ich die Klasse explizit fest lege (siehe Screenshot), dann funktioniert es. Nur 1. will ich das nicht jedesmal festlegen, da es ja einfacher geht und 2. will ich die oberste Zeile jeweils anders.

Bild: mdietsche.net/…/screenshot.png