[gelöst] Views: Design=Tabelle: Wie Zeile themen? Vermisse Theme "Zeilendesign"...
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 27.02.2011 - 17:28 Uhr in
Hey,
bisher habe ich immer mit einem unformatierten Design gearbeitet. Das Theming war mit Hilfe des "Zeilendesign" realtiv einfach.
Aber beim Design "Tabelle" gibt es dieses Theme nicht. Leider muss ich als Design "Tabelle" nehmen, da ich die Spalten sortierbar machen möchte.
Jedenfalls möchte ich auf die einzelnen Reihen zugreifen, um neue Variablen und If-Abfragen einzufügen. Gibt es da ne Möglichkeit? Oder muss ich das alles in der "foreach"-Schleife unterbringen?
Danke, liebe Grüße Line
- Anmelden oder Registrieren um Kommentare zu schreiben
Template
am 27.02.2011 - 18:56 Uhr
Hallo.
Jedenfalls möchte ich auf die einzelnen Reihen zugreifen, um neue Variablen und If-Abfragen einzufügen. Gibt es da ne Möglichkeit?
Das funktioniert nur über das Template views-view-table.tpl.php und dessen spezielle Ableitungen. Dort (um genau zu sein in Zeile 32 findest Du die Schleife, über die die einzelnen Zeilen ausgegeben werden.
Oder (um es kurz zu machen): ja, Du musst das alles in der foreach-Schleife unterbringen :)
Stefan
Danke
am 27.02.2011 - 20:30 Uhr
Hey Stefan,
danke für die Hilfe. Ich hab es schon geahnt :(
Hast du evtl. eine Ahnung, wie ich in der For-Schleife auf ein Feld zugreifen kann, das "von der Anzeige ausgeschlossen ist" -aber trotzdem geladen wird?
Ich bekomme es einfach nicht hin.
Danke, liebe Grüße Line
EDIT:
Ich weiß auch nicht wie ich auf normale Felder "anständig" zugreife :( Da fehlen mir wohl noch die PHP Kenntnisse.
Zum Beispiel das Fotofeld. Ich weiß, man könnte das Bild auch direkt mit Views anzeigen lassen - aber es ist ja nur ein Beispiel.
Erstmal muss ich das Fotofeld in der Schleife "abfangen", dann prüfen ob es vorhanden ist und dementsprechend reagieren:
Aber mein Code funktioniert nicht. Auch auf die ausgeschlossenen Felder kann ich nicht zugreifen.
<?php foreach ($row as $field => $content): ?>
<td class="views-field views-field-<?php print $fields[$field]; ?>">
<?php
if ($fields[$field]=='field_photo_1_fid') {
if ($content)
print '<a href="'.print base_path().'user/'.$fields['uid']->content.'"><img class="search-img" src="'.print imagecache_create_url('thumb', $fields['field_photo_1_fid']->content).'" title="'.print $fields['field_name_value']->content.'" /></a>';
else
print '<a href="'.print base_path().'user/'.$fields['uid']->content.'"><img class="search-img" src="'.print get_full_path_to_theme().'/images/nopic_'.(($fields['field_gender_value']->content=='w') ? 'female' : 'male').'_thumb.jpg'.'" title="'. print $fields['field_name_value']->content.'" /></a>';
}
else print $content; ?>
</td>
<?php endforeach; ?>
Felder
am 28.02.2011 - 09:16 Uhr
Hallo.
... Ich weiß auch nicht wie ich auf normale Felder "anständig" zugreife ... Erstmal muss ich das Fotofeld in der Schleife "abfangen", dann prüfen ob es vorhanden ist und dementsprechend reagieren ...
Du weisst doch, welche Felder Du in dem View definiert hast, oder? Dementsprechend kannst Du hier auf die Schleife verzichten und die einzelnen Felder komplett per Hand ausgeben:
<td class="views-field views-field-<?php print $fields['field_uid']; ?>"><?php print $row['field_uid'] ?></td>
<?php
$image_name = 'nopic_'. (($fields['field_gender_value']->content == 'w') ? 'female' : 'male') .'_thumb.jpg';
$image = theme(
'image',
path_to_theme() ."/images/$image_name",
$fields['field_name_value']->content,
$fields['field_name_value']->content,
array('class' => 'search-img')
);
if ($fields['field_photo_1_fid']->content) {
$image = theme(
'imagecache',
'thumb',
$fields['field_photo_1_fid']->content,
$fields['field_name_value']->content,
$fields['field_name_value']->content,
array('class' => 'search-img')
);
}
?>
<td class="views-field views-field-field_photo_1_fid"><?php print l($image, "user/{$fields['uid']->content}", array('html' => TRUE)); ?></td>
So in etwa.
Stefan
TOOLL
am 28.02.2011 - 12:32 Uhr
Hey Stefan,
ich danke dir für deine Mühe. Du hast mir super weitergeholfen.
Liebe Grüße Line