PDA

View Full Version : WhoIsOnline: Sort Ip Address


steve-iv
08-05-2010, 06:37 PM
Hi guys,

I?m not sure that I?m posting in the right subforum :D i just want to show a small "workaround" for sorting (desc/asc) ip addresses in the online.php (whoisonline).

By default, it?s not possible to sort the ip address column. You can modify the sort parameter to host (in a prepared hyperlink) but you won?t by able to get a great result ;)

Just have a deeper look into the online.php file:


switch ($sortfield)
{
case 'location':
$sqlsort = 'session.location';
break;
case 'time':
$sqlsort = 'session.lastactivity';
break;
case 'host':
$sqlsort = 'session.host';
break;
default:
$sqlsort = 'user.username';
$sortfield = 'username';
}


You can see, an extra switch for "host" is already implemented. But it won?t work properly - for sorting ip addresses i recommended to use the "inet_aton" function in mysql. inet_aton does only return the numeric value of an ip address, have a closer look here (http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton)!

Just change the line to:


$sqlsort = 'inet_aton(session.host)';


(Tested under Mysql version 5.xx)

Then you will be able to sort the column ip addresses by a prepared link.

Now we want to implement a "gui" functionality by clicking on the column header. Just go to your vbulletin templates, search for "whosonline"!

Replace line:


<vb:if condition="$show['ip']"><th><span class="blocksubhead">{vb:rawphrase ip_address}</span></th></vb:if>


to


<th><a class="blocksubhead" href="{vb:raw sorturl}{vb:if !$show['sorturlnoargs'], '&amp;'}<vb:if condition="$sortarrow['host']">order={vb:raw sortarrow.oppositesort}&amp;</vb:if>sort=host&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase ip_address} {vb:raw sortarrow.host}</a></th>


Now you will be able to sort the whoisonline list via clicking on the column header!

Greetings,

steve

lemonadesoda
08-06-2010, 12:20 AM
Thanks for the useful tip

ProFifaLeagues
08-06-2010, 03:20 AM
Great little tip there, thanks.

Fungsten
08-06-2010, 09:39 PM
Good tip! Thanks.