Seite 1 von 2

Ranking Spiele-Community auf Startseite

Verfasst: 10.08.2003 07:44
von mondi
Hallo,
ich habe die memberlist.php so umgebastelt, dass sie mir auf meiner Startseite die "Hall of Fame" (also die Top3 meiner Spielecommunity (in phpbb2 über Activity MOD) ausliest bzw. anzeigt.

Zu besichtigen ist das hier

http://www.zum.de/psm/index1.php

Wer das in der Spielecommunity testen möchte:

benutzer:spieler
passwort:test

Mein eigentliches Anliegen: Bevor ich das Script (incl. dem Template) an andere weitergebe, wäre es nett, wenn sich mal jemand den Code ansieht und ggf. weiter optimiert, damit
a) mir Peinlichkeiten erspart bleiben
und b) die ganze Sache möglichst optimal ist.

Wie gesagt, es funktioniert. Nur: Sieht es auch schön aus?????

Vielen Dank im Voraus
Mondi

Code: Alles auswählen

<?php
/***************************************************************************
 *                              ranking.php
 *                            -------------------
 *   begin                : Friday, May 11, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: memberlist.php,v 1.36.2.8 2003/06/09 13:06:19 psotfx Exp $
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = 'phpBB2/'; // board folder with! ending mark (if in same folder just './')
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWMEMBERS);
init_userprefs($userdata);
//
// End session management
//

$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
	$mode = ( isset($HTTP_POST_VARS['mode']) ) ? htmlspecialchars($HTTP_POST_VARS['mode']) : htmlspecialchars($HTTP_GET_VARS['mode']);
}
else
{
	$mode = 'points';
}

if(isset($HTTP_POST_VARS['order']))
{
	$sort_order = ($HTTP_POST_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else if(isset($HTTP_GET_VARS['order']))
{
	$sort_order = ($HTTP_GET_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else
{
	$sort_order = 'DESC';
}

//
// Ranking sorting
//
$mode_types_text = array($lang['Sort_Username'], $board_config['points_name']);
$mode_types	= array('points');

$select_sort_mode = '<select name="mode">';
for($i = 0; $i < count($mode_types_text); $i++)
{
	$selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : '';
	$select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>';
}
$select_sort_mode .= '</select>';

$select_sort_order = '<select name="order">';
if($sort_order == 'ASC')
{
	$select_sort_order .= '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
}
else
{
	$select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
}
$select_sort_order .= '</select>';

//
// Generate page
//
$page_title = $lang['Memberlist'];

$template->set_filenames(array(
	'body' => 'ranking_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);

$template->assign_vars(array(
	'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
	'L_POINTS' => $board_config['points_name'],

	'S_MODE_SELECT' => $select_sort_mode,
	'S_ORDER_SELECT' => $select_sort_order,
	'S_MODE_ACTION' => append_sid("memberlist.$phpEx"))
);

switch( $mode )
{

	case 'points':
		$order_by = "user_points $sort_order LIMIT 3";
		break;
	default:
		$order_by = "user_points $sort_order LIMIT 3";
		break;
}

$sql = "SELECT username, user_points
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}

if ( $row = $db->sql_fetchrow($result) )
{
	$i = 0;
	do
	{
		$username = $row['username'];
		$user_id = $row['user_id'];

		$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts");
		$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
		$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>'; $user_points = $row['user_points'];

		$template->assign_block_vars('memberrow', array(
			'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
			'ROW_COLOR' => '#' . $row_color,
			'ROW_CLASS' => $row_class,
			'USERNAME' => $username,
		        'POINTS' => $user_points,
			'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
		);

		$i++;
	}
	while ( $row = $db->sql_fetchrow($result) );
}



$template->pparse('body');



?>

Verfasst: 15.09.2003 17:46
von Oede
Hi mondi,
also ich währe sehr dankbar dafür, wenn Du mir diesen Mod geben würdest, es sieht nähmlich gut aus auf deiner Page :D

Gruß
Oede :wink:

Verfasst: 15.09.2003 17:49
von mondi
Hier sieht es sogar noch besser aus :D

http://www.stabi.hs-bremerhaven.de/mondwurf/

datei ist unterwegs ...

Verfasst: 15.09.2003 21:32
von AmigaLink
Kannste mir den auch mal schicken?

Verfasst: 15.09.2003 22:40
von mondi
Also, ich kann nur nochmal wiederholen: Das ist alles etwas zusammengestrickt. Ich habe die obige Datei im Root liegen und dann natürlich noch eine Template-Datei gebastelt (Voraussetzung: Activity MOD und Points_System - sonst geht gar nichts). Mehr habe ich nicht; wie es ausschaut, ist - wie gesagt, hier zu besichtigen (Rangliste rechts):

http://www.stabi.hs-bremerhaven.de/mond ... portal.php

Hier also noch die die Datei ranking_body.tpl
@oede natürlich muss dann die ranking.php (also was mal memberlist.php war) included werden. Ich bin mir sicher, dass das alles noch wesentlich eleganter gelöst werden kann.

Code: Alles auswählen

  <table width="48%" cellpadding="3" cellspacing="1" border="0" class="forumline">
<tr> 
	  <th  nowrap="nowrap" colspan="3"><font color="white" size="-6">Rangliste Online-Spiele</th>
	  
	 
	
	</tr>	

	<!-- BEGIN memberrow -->
	<tr> 
	  <td class="row1" align="center"><span class="gen"><font size="-6">&nbsp;{memberrow.ROW_NUMBER}&nbsp;</span></td>
	  
	  <td class="row1" align="center"><span class="gen"><font size="-6">{memberrow.USERNAME}</span></td>
	  
	  
 <td class="row1" align="center" valign="middle"><span class="gen"><font size="-6">{memberrow.POINTS}</span></td>



	</tr>
	<!-- END memberrow -->




		 <tr>
<td class="row2" align="center" colspan="3"><span class="gen"><font size="-6">
<script language="JavaScript" >
<!--
var jetzt = new Date();
Monatsbezeichnung = new Array ("1.","2.",
"3.","4.","5.","6.","7.","8.",
"9.","10.","11.","12.");
Wochentagsbezeichnung = new Array ("Sonntag",
"Montag","Dienstag","Mittwoch","Donnerstag",
"Freitag","Samstag");
var Tag = jetzt.getDate();
var Wochentag = jetzt.getDay();
var Monat = jetzt.getMonth();

document.write(""
+ " " + Tag + "."
+ Monatsbezeichnung[Monat] + "2003</B>");

// --></script></span> | <a href="phpBB2/activity.php">Einloggen</a></td></tr>




  </table>

Verfasst: 15.09.2003 23:13
von AmigaLink
Danke!

Der Points-Hack ist nötig?
Hmmm - na gut. :)

Zur info:
Ich habe die ganzen Spiele Sachen übrigens noch garnicht eingebaut. Sammle aber schon seit einiger Zeit alles dafür, weil ich es sehr Interessant finde und mit dem Gedanken an den einbau Spiele. Das ganze passt eigentlich nicht wirklich zur Thematik meiner Seite, deswegen werde ich es mir noch mehr als nur einmal durch den Kopf gehen lassen. :D

Verfasst: 15.09.2003 23:23
von mondi

Code: Alles auswählen

Das ganze passt eigentlich nicht wirklich zur Thematik meiner Seite, deswegen werde ich es mir noch mehr als nur einmal durch den Kopf gehen lassen.  :D

BRAVO! Tutto nel mondo é burla!

Verfasst: 16.09.2003 12:25
von AmigaLink
mondi hat geschrieben: BRAVO! Tutto nel mondo é burla!
Wie meinen???

Verfasst: 16.09.2003 18:17
von sausebaby
mondi mir gefällt das auch, könntest du das mal genauer schreiben, wo und wie du was genau machst , oder einfügst... z.b. wie die MOD's da ist immer beschrieben wo was hin muß. oder ist das für mich noch zu schwierig, sollte wohl doch noch warten :wink:

Verfasst: 06.10.2003 20:54
von Oede
*lol* dann warte ich, bis eine elegante Lösung gefunden wird.
Ich bekomme es einfach nicht hin.

Vielleicht kann mir aber auch einer von Euch weiterhelfen??
Ich habe in der index.php den include-Befehl eingefügt:

Code: Alles auswählen

include("http://www.downtown-board.de/board/ranking.php");
Ich bekomme aber immer dann die Fehlermeldung:

Code: Alles auswählen

Parse error: parse error, unexpected '.' in /home/www/ww2229/html/board/ranking.php on line 77
Das sind die Zeilen 69 - 82 in der ranking.php:

Code: Alles auswählen

	$selected = ( $mode == $mode_types[$i] ) ? ' selected="selected"' : '';
	$select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>';
}
$select_sort_mode .= '</select>';

$select_sort_order = '<select name="order">';
if($sort_order == 'ASC')
{
	$select_sort_order .= '<option value="ASC" selected="selected">' .. $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
}
else
{
	$select_sort_order .= '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
}
Gruß
Oede