userpoints anzeigen
Eingetragen von Schneekoenig (86)
am 23.03.2008 - 18:02 Uhr in
am 23.03.2008 - 18:02 Uhr in
Ich habe das Modul userpoints installiert und es scheint auch zu arbeiten. Jetzt hätte ich gern - wie hier im Forum - hinter den Profildaten in Klammern die erworbenen Punkte dargestellt. Wie geht das?
Gruß
tom
- Anmelden oder Registrieren um Kommentare zu schreiben
Funktion von userpoints
am 23.03.2008 - 18:18 Uhr
Es gibt die Funktion userpoints_get_current_points($uid) im userpoints Modul. Die kannst du benutzen. Als Parameter übergibts du die uid des Profils das gerade betrachtet wird. Nicht die uid des globalen User Objekts. Das ist immer der gerade angemeldete Besucher.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
das will ich gern ausprobieren!
am 23.03.2008 - 19:06 Uhr
Zunächst vielen Dank für deinen Tipp!
Leider verstehe ich nicht wirklich, was du beschreibst...
Ich habe mir zwar inzwischen ein Buch zu php gekauft und bin am Lesen, aber ich würde mich extrem freuen, wenn du ein "Codesnipplet" posten könntest, das mir das programmieren erleichtert...
:-)
Vielen Dank!
Gruß
tom
www.Schneekoenige.de (für die Freu(n)de des Skifahrens)
Userpoints
am 23.03.2008 - 20:05 Uhr
Erstell dir einen neuen Block, stell das Eingabeformat auf PHP und kopiere folgenden Code in das Textfeld. Der Code ist aus dem www.drupal.org Handbuch http://drupal.org/node/66638
Ich habe lediglich folgende Zeile verändert
<?php
$items[] = $account . '(' . userpoints_get_current_points($account) . ')';
?>
Hier der gesamte Code, den du kopieren musst. Sag mal Bescheid, ob das so funktioniert. Ich selber habe die Funktion userpoints_get_current_points($account) bisher auf andere Art und Weise eingebunden. Z.B. hier: http://www.ourbania.de/citizens
<?php
$number = db_result(db_query('SELECT COUNT(uid) AS number FROM {users} WHERE status=1'));
if (user_access('access content')) {
// Count users with activity in the past defined period.
$time_period = variable_get('user_block_seconds_online', 900);
// Perform database queries to gather online user lists.
$guests = db_fetch_object(db_query('SELECT COUNT(sid) AS count FROM {sessions} WHERE timestamp >= %d AND uid = 0', time() - $time_period));
$users = db_query('SELECT uid, name, access FROM {users} WHERE access >= %d AND uid != 0 ORDER BY access DESC', time() - $time_period);
$total_users = db_num_rows($users);
// Format the output with proper grammar.
echo "Out of $number registered users ";
if ($total_users == 1 && $guests->count == 1) {
$output = t('%members and %visitors online.', array('%members' => format_plural($total_users, 'there is currently 1 user', 'there are currently @count users'), '%visitors' => format_plural($guests->count, '1 guest', '@count guests')));
}
else {
$output = t('there are currently %members and %visitors online.', array('%members' => format_plural($total_users, '1 user', '@count users'), '%visitors' => format_plural($guests->count, '1 guest', '@count guests')));
}
// Display a list of currently online users.
$max_users = variable_get('user_block_max_list_count', 10);
if ($total_users && $max_users) {
$items = array();
while ($max_users-- && $account = db_fetch_object($users)) {
$items[] = $account . '(' . userpoints_get_current_points($account) . ')';
}
$output .= theme('user_list', $items, t('Online users'));
}
}
return $output;
?>
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Klappt beinahe!
am 24.03.2008 - 09:22 Uhr
Ich habe ein "print" deinem Code hinzugefügt und diese Zeile in der Datei "comment.tpl.php" eingefügt. Jetzt werden zwar die Benutzerpunkte bei den Kommentaren angezeigt, aber leider immer nur die Punkte des angemeldeten Benutzers und nicht den jeweiligen Punktestand des jeweiligen Nutzers der den Kommentar einmal abgegeben hat...
www.Schneekoenige.de (für die Freu(n)de des Skifahrens)
Der Code funktioniert nur
am 24.03.2008 - 18:39 Uhr
Der Code funktioniert nur als Ganzes in einem Block. Nur die von mir geänderte Zeile in der comment.tpl.php nützt dir nichts!
Du brauchst die uid des Autors eines Kommentars. Lass dir mal in der comment.tpl.php $comment ausgeben.
<pre><?php var_dump($comment) ?></pre>
Dort müsste eigentlich die uid drin sein.
Dann kannst du userpoints_get_current_points($comment->uid) benutzen.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services