views / php-code Hilfe? Knifflig...
am 22.04.2008 - 16:14 Uhr in
Es geht um Views... Ich brauchte eine Tabellenansicht, in der es sehr viele Felder gab - die normale Tabellenansicht konnte ich also nicht nehmen. Deswegen habe ich die Listenansicht gewählt und nach langem Suchen einen Code gefunden, mit dem ich verschiedene (Profil-)Felder in einer Tabellenzelle ausgeben konnte. Es handelt sich um eine Teilnehmerliste. War ein Benutzer einer Gruppe (Organic Groups) zugeordnet, erschien er auf dieser Liste. Schön und gut soweit. Im Praxistest ist nun aber erst mein Problem sichtbar geworden - sobald einer dieser Benutzer irgendeine Art Content erstellt hat, erscheint er zweimal in der Liste. Ich kann's mir einfach nicht erklären... Im View sind nur die Profilfelder ausgewählt und als Argument "OG: Group nid(s)". Ich finde bisher keine Möglichkeit, die Ansicht so zu beschränken, dass jeder nur einmal in der Liste erscheint... Hat jemand spontan eine Idee? Könnte man zur Not im unten stehenden php-Code eine entsprechende Angabe machen?
function phptemplate_views_view_list_Teilnehmerliste($view, $nodes, $type) {
$table = array();
foreach ($nodes as $i => $node) {
$node = node_load($node->nid);
$user = user_load(array('uid' => $node->uid));
$table[] = array(
l($user->profile_vorname .' '. $user->profile_name, 'user/'. $user->uid),
$user->profile_unternehmen .'<br />'. $user->profile_abt .'<br />'. $user->profile_strasse .'<br />'. $user->profile_plz .' '. $user->profile_ort,
'Tel. (Büro): '. $user->profile_telbuero .'<br />Fax (Büro): '. $user->profile_fax .'<br />Tel. (privat): '. $user->profile_telpriv .'<br />Handy: '. $user->profile_handy,
l($user->profile_mailbuero, 'mailto:'. $user->profile_mailbuero)
);
}
return theme_table(array('Name', 'Anschrift', 'Telefon, Fax', 'E-Mail'), $table);
}
Ich habe eine recht komplizierte Konstruktion mit Views, dem Core Profile, Usernode, Advanced Profile und Panels. Das genau zu erklären würde hier den Rahmen sprengen... Aber ich hoffe mal, dass jemand trotzdem den passenden Einfall hat...
Danke und liebe Grüße
Anja
- Anmelden oder Registrieren um Kommentare zu schreiben
folgender Code sollte
am 22.04.2008 - 17:05 Uhr
folgender Code sollte eigentlich funktionieren
<?php
function phptemplate_views_view_list_Teilnehmerliste($view, $nodes, $type) {
$table = array();
foreach ($nodes as $i => $node) {
$node = node_load($node->nid);
//Doppelte User werden einfach von sich selbst überschrieben
$userlist[$node->uid] = $node->uid;
}
foreach ($userlist as $u) {
$user = user_load(array('uid' => $u));
$table[] = array(
l($user->profile_vorname .' '. $user->profile_name, 'user/'. $user->uid),
$user->profile_unternehmen .'<br />'. $user->profile_abt .'<br />'. $user->profile_strasse .'<br />'. $user->profile_plz .' '. $user->profile_ort,
'Tel. (Büro): '. $user->profile_telbuero .'<br />Fax (Büro): '. $user->profile_fax .'<br />Tel. (privat): '. $user->profile_telpriv .'<br />Handy: '. $user->profile_handy,
l($user->profile_mailbuero, 'mailto:'. $user->profile_mailbuero)
);
}
return theme_table(array('Name', 'Anschrift', 'Telefon, Fax', 'E-Mail'), $table);
}
?>
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
Klasse, das funktioniert
am 22.04.2008 - 18:41 Uhr
Klasse, das funktioniert wirklich! Das hat mir total geholfen, für heute bist du mein Held ;-)
LG
Anja
undpaul
Longevity Insights from Top Health Podcasts
puh Glück gehabt, habs
am 22.04.2008 - 19:08 Uhr
puh Glück gehabt, habs nämlich gar nicht getestet
Aber ist schon der Wahnsinn!, dass sich solche Dinge mit so einfach lösen lassen
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb