Gelöst - Themen einer Tabelle aus einer View
am 08.09.2008 - 09:58 Uhr in
Ich habe mir für ein neues Projekt eine View erstellt die als Tabelle ausgeworfen werden soll. Diese möchte ich jetzt auch entsprechend optisch darstellen - bei einer Liste würde mir ja der Theme wizard helfen aber für eine Tabelle gibt es das ja leider nicht.
Nachdem ich einiges zum oben genannten Thema bereits gefunden habe und auch schon durch dieses Forum eine erste Lösung habe bleiben aber einige Fragen offen. Ich habe hier den Hinweis auf diesen Thread gefunden, http://drupal.org/node/87367 und habe entsprechend den folgenden Code in meine template.php eingefügt und angepasst:
function mytheme_views_view_table($view, $nodes, $type) {
$header = array();
foreach ($view->field as $field) {
$cell['data']=$field['label'];
$cell['class']=$field['header'];
$header[] = $cell;
}
$fields = _views_get_fields();
foreach ($nodes as $node) {
$row = array();
foreach ($view->field as $field) {
$cell['data'] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
$cell['class']='view-field-'.$field['queryname'];
$row[] = $cell;
}
$rows[] = $row;
}
return theme('table', $header, $rows, array('class' => 'mytable'));
}
Nun habe ich entsprechende Klassen wie z.b.
.myview-node_data_field_preview_field_preview_fid,
.myview-node_data_field_galleryhomepage_field_galleryhomepage_url,
.myview-node_data_field_galleryemail_field_galleryemail_email
usw. usw.
Nun kommt meine Fragen:
1. Diese ganzen Klassen sind sehr speziell und ich muss in meiner .css datei alle einzeln und neu definieren. Mir wäre natürlich lieber wenn ich für die in der view vorkommenden Felder meine eigenen Klassen verwenden könnte dich ich bereits definiert habe, zumal ich vorhabe noch mehrere ähnliche Views darzustellen. Ist es möglich den Eintrag in der template.php so zu machen dass ich das auch kann ? Das würde die .css Datei natürlich sehr viel schlanker machen und ich würde bei einer Änderung alle von mir angelegten views mit einbeziehen.
2. Ich kann zwar viele Felder definieren - es bleibt aber bisher immer der übliche graue Rand und die Zellenabstände erhalten - ich gehe davon aus dass ich irgendwo die Werte für border, cellpadding und cellspacing definieren muss - ich vermute einmal in der template.php da ich woanders ja keinen Zugriff auf die view habe.
Vielen Dank schon einmal für eventuelle Antworten.
--------------------------------------------------------------------
Für alle die mal vor einem ähnlichen Problem stehen hier die Info wie ich es gelöst habe.
Ich habe für meinen Inhaltstyp eine node-mytype.tpl.php erstellt und dort definiert wie:
1. der Anrisstext aussehen soll (
<?php
if ($page == 0):
?>
und dann natürlich wie:
2. der komplette Inhaltstyp ausgegeben werden soll(
<?php
if ($page == 1):
?>
Danach habe ich eine view erstellt und statt der Tabelle einen Anrisstext gewählt und schon kann ich die Ausgabe wunderbar per node-mytype.tpl.php und css-datei gestalten.
Ich weiß zwar nicht ob das ein üblicher Weg ist, aber es klappt ganz hervorragend.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 18 Stunden 57 Minuten
vor 19 Stunden 1 Minute
vor 5 Tagen 12 Stunden
vor 5 Tagen 15 Stunden
vor 5 Tagen 15 Stunden
vor 5 Tagen 15 Stunden
vor 6 Tagen 12 Stunden
vor 6 Tagen 14 Stunden
vor 1 Woche 11 Stunden
vor 1 Woche 1 Tag