Die Datenbank könntest Du so auf Stand bringen:
In der includes/functions_posting.php
- finde:
Code: Alles auswählen
$url = append_sid($url, 'f=' . $data['forum_id'] . $params) . $add_anchor;
danach füge ein:
Code: Alles auswählen
// start find top poster
$sql_array = array(
'SELECT' => 'COUNT(p.post_id) AS max_posts, p.poster_id, u.username',
'FROM' => array(
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u',),
'ON' => 'p.poster_id = u.user_id',
)
),
'ORDER_BY' => 'max_posts DESC',
);
$sql = $db->sql_build_query('SELECT', $sql_array);
$result = $db->sql_query_limit($sql, 1);
$row = $db->sql_fetchrow($result);
set_config('top_poster_id', $row['poster_id']);
set_config('top_poster_name', $row['username']);
// end find top poster
Jetzt hast Du die Variablen
$config['top_poster_id']
und
$config['top_poster_name']
, die Dir immer den aktuellen Top-Poster angeben.
Diese werden
immer aus der Anzahl der im Forum vorhandenen Beiträge errechnet.
Wenn Du das so nicht möchtest, weil Du bspw. immer mal wieder Themen / Beiträge löschst, kannst Du die Query auch einfacher gestalten und die Daten nur aus der Usertabelle auslesen.
Im neuen Code finde:
Code: Alles auswählen
$sql_array = array(
'SELECT' => 'COUNT(p.post_id) AS max_posts, p.poster_id, u.username',
'FROM' => array(
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u',),
'ON' => 'p.poster_id = u.user_id',
)
),
'ORDER_BY' => 'max_posts DESC',
);
$sql = $db->sql_build_query('SELECT', $sql_array);
und tausche es aus gegen:
Code: Alles auswählen
$sql = 'SELECT user_id AS poster_id, username FROM ' . USERS_TABLE . '
ORDER BY user_posts DESC';
In der includes/functions.php
- finde:
Code: Alles auswählen
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
danach füge ein:
Code: Alles auswählen
'TOP_POSTER_ID' => $config['top_poster_id'],
'TOP_POSTER_NAME' => $config['top_poster_name'],
Jetzt hast Du eine Template Variable
TOP_POSTER_ID
und
TOP_POSTER_NAME
überall verfügbar.
Nun noch flink ein Beispiel der Nutzung in der Themenanzeige:
In der /styles/prosilver/template/viewtopic_body.html
- finde:
Code: Alles auswählen
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
davor füge ein:
Code: Alles auswählen
<!-- IF postrow.POSTER_ID eq TOP_POSTER_ID -->hier kommt dein Bild hin <!-- ENDIF -->
Das kannst Du dann noch ein bißchen hübscher machen.
Für die memberlist sollte das genauso passen. Brauchst Du nur abkupfern.
Denke dran: KB:tippstyles
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen