Gebruikerslijst automatisch op aantal posts sorteren

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
sjef
Berichten: 56
Lid geworden op: 05 feb 2003, 15:08

Gebruikerslijst automatisch op aantal posts sorteren

Bericht door sjef » 13 jan 2004, 13:44

Als ik op de gebruikerslijst klik, dan sorteert deze automatisch op aanmeldingsdatum. Ik kan vervolgens wel handmatig sorteren op aantal posts, maar ik wil dat dit automatisch gebeurt.

Hoe doe ik dat?

Gebruikersavatar
hotrid
Berichten: 452
Lid geworden op: 24 jun 2003, 14:33
Locatie: Almelo
Contacteer:

Bericht door hotrid » 13 jan 2004, 14:00

memberlist.php en dan zoeken naar

Code: Selecteer alles

$mode = 'joined'
en dan veranderen in
$mode = 'posts'

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 13 jan 2004, 14:28

hotrid schreef:memberlist.php en dan zoeken naar

Code: Selecteer alles

$mode = 'joined'
en dan veranderen in
$mode = 'posts'
lol, dat zou ik niet doen, dan verneuk je die functies. Je moet op zoek gaan naar de standaardmode die memberlist.php aanneemt wanneer $mode niet bestaat. :) (ben op school, kan nu niet zoeken)
Laatst gewijzigd door mosymuis op 13 jan 2004, 14:34, 1 keer totaal gewijzigd.

Gebruikersavatar
hotrid
Berichten: 452
Lid geworden op: 24 jun 2003, 14:33
Locatie: Almelo
Contacteer:

Bericht door hotrid » 13 jan 2004, 14:31

Maar daarmee is het toch of heb ik het (alweer) helemaal mis....(ik ga wel ff verder zoeken)

Gebruikersavatar
hotrid
Berichten: 452
Lid geworden op: 24 jun 2003, 14:33
Locatie: Almelo
Contacteer:

Bericht door hotrid » 13 jan 2004, 14:35

Bedoel je deze mosymuis. (als dit zo is dan moet je het omdraaien met wat je wilt (dus eerst de ander vooraan zetten)

Code: Selecteer alles

case 'joined':
		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];

Code: Selecteer alles

$mode_types_text = array($lang['Sort_Joined'], 


TEst anders ff (en sla de bestanden eerst op!)

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 13 jan 2004, 14:39

Nee, daar gaat hij gewoon na welke $mode is aangegeven, en welke actie hij dus moet starten. Dit heeft niets te maken met de standaard actie (" } else { " of " case ''; "?) die wordt gestart wanneer $mode niet bestaat.

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 13 jan 2004, 14:45

Nu sorteert ie vanzelf op posts van hoog naar laag:
Verander het naar het rode (bij het eerste van joined naar posts, bij het tweede van ASC naar DESC).
//
// 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 = 'posts';
}

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';
}
Afbeelding

Gebruikersavatar
hotrid
Berichten: 452
Lid geworden op: 24 jun 2003, 14:33
Locatie: Almelo
Contacteer:

Bericht door hotrid » 13 jan 2004, 14:48

Luuk, dat d8 ik bij me eerste post dit topic ook, MAar volgens Mr. Mosymuis is dat niet het geval...

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 13 jan 2004, 14:49

Bij mijn eigen forum werkt het zo, dus hier heeft iemand ongelijk :roll:
Afbeelding

Gebruikersavatar
hotrid
Berichten: 452
Lid geworden op: 24 jun 2003, 14:33
Locatie: Almelo
Contacteer:

Bericht door hotrid » 13 jan 2004, 14:50

Samen staan we sterk. Zal mosymuis dan ongelijk hebben :?

sjef
Berichten: 56
Lid geworden op: 05 feb 2003, 15:08

Bericht door sjef » 13 jan 2004, 14:58

Yep, het werkt perfect! Bedankt Luuk en hotrid

Gebruikersavatar
Cheeta
Berichten: 1165
Lid geworden op: 11 jan 2004, 11:26
Locatie: Mijdrecht Sites: -- Derbi Club --
Contacteer:

Bericht door Cheeta » 13 jan 2004, 15:01

mosymuis wilt het op de veilige manier doen!!!!

Want als een sorteer mogelijkheid faalt gaat die over naar een andere!

Maar normaal gesproken mag dat geen probleem wezen!!!

mzzl 8)

sjef
Berichten: 56
Lid geworden op: 05 feb 2003, 15:08

Bericht door sjef » 13 jan 2004, 15:14

Het kan op deze manier toch geen ernstige problemen opleveren?

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 13 jan 2004, 15:18

Wat Cheeta dus zegt:
Cheeta schreef:mosymuis wilt het op de veilige manier doen
Want:
Cheeta schreef:als een sorteer mogelijkheid faalt gaat die over naar een andere!
Maar:
Cheeta schreef:normaal gesproken mag dat geen probleem wezen!!!
Wil je het dus op een veilige manier doen doe het dan op de manier van mosymuis.

Gebruikersavatar
Podium4
Berichten: 3009
Lid geworden op: 07 aug 2003, 15:32
Locatie: Groningen / Zwolle

Bericht door Podium4 » 13 jan 2004, 22:22

ik denk dat mosymuis deze manier wil:

Code: Selecteer alles

switch( $mode )
{
	case 'joined':
		$order_by = "user_regdate ASC LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'username':
		$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'location':
		$order_by = "user_from $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'posts':
		$order_by = "user_posts $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'email':
		$order_by = "user_email $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'website':
		$order_by = "user_website $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
	case 'topten':
		$order_by = "user_posts $sort_order LIMIT 10";
		break;
	case $cm_memberlist->modecheck($mode):
		$order_by = $cm_memberlist->getfield($mode) . " $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;	
	default:
		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
		break;
}

$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
Lees maar eens door dit stukje maar begin onderaan.... :

Sql selecteert allerlei velden uit user_table maar alleen waar user_id ongelijk is aan ANONYMOUS en word gesorteerd ORDER BY $order_by....
$order_by is dus een variabele die naar een ander stuk van een code wijst waarin verteld word waar die op moet sorteren... daar staat er direct boven....:

case: joined, username website.... etc... maar onderaan staat:

Code: Selecteer alles

	default:
		$order_by = "user_regdate $sort_order LIMIT $start, " . $board_config['topics_per_page'];
default betekend gewoon algemeen of standaard....
daarbij default staat dus $order_by = user_regdate

dan wil je waarschijnlijk ook nog graag de volgorde veranderen...
er staat dus achter $sort_order dat is dus de variabele die we gaan terugzoeken in het bestand:

Code: Selecteer alles

$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']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
	$mode = 'joined';
}

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 = 'ASC';
}
Hier staat een heel verhaal zou je zeggen... toch zit er nog logica in...:
er staat ongeveer zoiets:
als er in de adresbalk staat aflopend of oplopend sorteren dan moet dat worden toegepast... als er niks staaat dan ASC... maak daar maar vrolijk DESC van als je dat nodig vind...
Alleen support via het forum, dus geen support via email, msn of pb.

Gesloten