Spaltenbreite einer im Modul erstellten Tabelle
am 23.08.2008 - 15:16 Uhr in
Ich erzeuge in einem eigenen Modul eine aus 11 Spalten bestehende Tabelle, die ungefährt so aussieht
Name | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | Summe
xyz 1 1 0 2
abc 1 1 1 3
In der Zeile 1 (xyz) fehlen allerdings noch Eintragungen in den Spalten R4-R9
In der Zeile 2 (abc) fehlen sogar noch die Spalten 1 und 4
Leider wird dadurch die gesamte Tabelle verschoben (wie auch hier werden die schon vorhandenen Spalten aneinandergeschoben), so dass die Zuordnung zur Spaltenüberschrift völlig verloren geht
Die Übergabe der Tabelle aus dem Modul erfolgt mittels return theme('table',$header,$array)
Ich muss also wahrscheinlich schon im Modul vor der Übergabe festlegen, dass die Splaten eine feste Breite haben, auch wenn das Feld noch keinen Inhalt hat.
Wie geht das ?
Es gibt wohl auch noch einen Parameter $attributes
Ich habe aber nirgendwo ein passendes Beispiel gefunden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Tabellen
am 23.08.2008 - 18:40 Uhr
Ich muss also ... festlegen, dass die Splaten eine feste Breite haben, auch wenn das Feld noch keinen Inhalt hat ... damit die Zuordnung zur Spaltenüberschrift nicht völlig verloren geht
Ich denke, dass die Tabelle nicht komplett abgebildet wird. Schau mal im Quelltext nach und versuche das Tabellenkonstrukt aufzuschlüsseln. Zwischen jedem <tr>...</tr> müssen immer 11 <td>...</td> stehen. Normalerweise ist die Breitenangabe für eine korrekten Darstellung nicht nötig. Nur wenn Felder weggelassen werden, zerschießt es eine Tabelle.
Du solltest in deinem Modul mit angeben, dass ein festes Leerzeichen ( ) erzeugt wird, falls kein Feldinhalt vorhanden ist. Ich vermute, da ich dein Modul nicht kenne, dass ohne Inhalt auch kein Feld erzeugt wird und deswegen die Tabelle kollabiert.
Dies sind meine 2 Cent als Denkanstoß.
Der Hinweis ist auf jeden
am 23.08.2008 - 22:50 Uhr
Der Hinweis ist auf jeden Fall seine 2 Cent wert, jedenfalls ist die Tabelle nun ordentlich dargestellt.
Trotzdem ist das nur der halbe Weg zum Ziel, weil es absolut keine Möglichkeit gibt, die Tabelle über css zu formatieren.
Die einzigen css-Klassen, die übergeben werden, ist "odd" und "even" für die Zeilen, aber nichts für die Spaltenbezeichnung oder die einzelnen Zellen.
Vielleicht hat ja doch noch jemand eine entsprechende Idee ?
über CSS formatieren
am 25.08.2008 - 14:26 Uhr
Der Hinweis ist auf jeden Fall seine 2 Cent wert, jedenfalls ist die Tabelle nun ordentlich dargestellt.
Sehr gut!
Trotzdem ist das nur der halbe Weg zum Ziel, weil es absolut keine Möglichkeit gibt, die Tabelle über css zu formatieren.
Diese Aussage halte ich so nicht für zutreffend. Da diese Tabelle an einer bestimmten Stelle ausgegeben wird, kann man zusätzlich mit den übergeordneten Containern arbeiten.
Da ich dein Modul immer noch nicht kenne und du dich beharrlich weigerst, den Code hier zu posten ;-) werde ich mal wieder ins Blaue hinein ...
... Die Übergabe der Tabelle aus dem Modul erfolgt mittels return theme('table',$header,$array) ...
Wie wäre es denn, wenn du eine feste ID mit übergibst, oder doch eine Class-Anweisung?
theme('table', $header, array('id' => 'irgendwas'));
oder
theme('table', $header, array('class' => 'irgendwas'));