Pagina 1 van 1
Gebruikerslijst automatisch op aantal posts sorteren
Geplaatst: 13 jan 2004, 13:44
door sjef
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?
Geplaatst: 13 jan 2004, 14:00
door hotrid
memberlist.php en dan zoeken naar
en dan veranderen in
$mode = 'posts'
Geplaatst: 13 jan 2004, 14:28
door mosymuis
hotrid schreef:memberlist.php en dan zoeken naar
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)
Geplaatst: 13 jan 2004, 14:31
door hotrid
Maar daarmee is het toch of heb ik het (alweer) helemaal mis....(ik ga wel ff verder zoeken)
Geplaatst: 13 jan 2004, 14:35
door hotrid
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'];
TEst anders ff (en sla de bestanden eerst op!)
Geplaatst: 13 jan 2004, 14:39
door mosymuis
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.
Geplaatst: 13 jan 2004, 14:45
door Luuk
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';
}
Geplaatst: 13 jan 2004, 14:48
door hotrid
Luuk, dat d8 ik bij me eerste post dit topic ook, MAar volgens Mr. Mosymuis is dat niet het geval...
Geplaatst: 13 jan 2004, 14:49
door Luuk
Bij mijn eigen forum werkt het zo, dus hier heeft iemand ongelijk

Geplaatst: 13 jan 2004, 14:50
door hotrid
Samen staan we sterk. Zal mosymuis dan ongelijk hebben

Geplaatst: 13 jan 2004, 14:58
door sjef
Yep, het werkt perfect! Bedankt Luuk en hotrid
Geplaatst: 13 jan 2004, 15:01
door Cheeta
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)
Geplaatst: 13 jan 2004, 15:14
door sjef
Het kan op deze manier toch geen ernstige problemen opleveren?
Geplaatst: 13 jan 2004, 15:18
door Stef
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.
Geplaatst: 13 jan 2004, 22:22
door Podium4
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...