Ränge in der Memberlist anzeigen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
xpressive
Mitglied
Beiträge: 96
Registriert: 04.06.2004 13:39

Ränge in der Memberlist anzeigen

Beitrag von xpressive »

Ich würde auf der Memberlist gerne die Ränge der User unter ihrem Namen mit anzeigen. Die Templates anzupassen ist kein Problem, aber vielleicht kann mir jemand einen Tip geben, welche SQL-Abfrage ich wo in der memberlist einfügen muss, um das am effizientesten zu lösen (möchte nicht die Board-Performance unnötig drücken).

Da war doch noch was... ach ja: FROHES FEST! :D
Benutzeravatar
xpressive
Mitglied
Beiträge: 96
Registriert: 04.06.2004 13:39

Beitrag von xpressive »

Alles klar, schon gelöst. Habe das mal so gemacht:

memberlist.php

FINDE:

Code: Alles auswählen

	default:
		$order_by = "user_regdate $sort_order LIMIT $start, 50";
		break;
}
DANACH EINFÜGEN:

Code: Alles auswählen

// MOD: DISPLAY USER RANKS ON MEMBERLIST ----------------------------
$sql = "SELECT *
	FROM " . RANKS_TABLE . "
	ORDER BY rank_special, rank_min";
if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql); }

$ranksrow = array(); while ( $row = $db->sql_fetchrow($result) ) { $ranksrow[] = $row; }

$db->sql_freeresult($result);
// ------------------------------------------------------------------
FINDE:

Code: Alles auswählen

		$username = $row['username'];
		$user_id  = $row['user_id'];
DANACH EINFÜGEN:

Code: Alles auswählen

		// MOD: DISPLAY USER RANKS ON MEMBERLIST ----------------------------
		$poster_rank = '';
		$rank_image  = '';
		if ( $row['user_rank'] )
			{
			for($j = 0; $j < count($ranksrow); $j++)
				{
				if ( $row['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] )
					{
					$poster_rank =   $ranksrow[$j]['rank_title'];
					$rank_image  = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
					}
				}
			}
		else
			{
			for($j = 0; $j < count($ranksrow); $j++)
				{
				if ( $row['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] )
					{
					$poster_rank =   $ranksrow[$j]['rank_title'];
					$rank_image  = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
					}
				}
			}
		// ------------------------------------------------------------------
FINDE:

Code: Alles auswählen

			'YIM_IMG' => $yim_img,
			'YIM' => $yim,
DANACH EINFÜGEN:

Code: Alles auswählen

			'RANK' => $poster_rank,
			'RANK_IMG' => $rank_image,

So, dann braucht man nur noch in der memberlist_body.tpl an geeigneter Stelle die beiden Platzhalter {memberrow.RANK} und {memberrow.RANK_IMG} einfügen.
Antworten

Zurück zu „Coding & Technik“