wiki.techinc.nl/includes/SpecialPopularpages.php
Brion Vibber ee940c906d Replace ugly abuse of log pages to store cached results of query pages
with a table that stores up to 1000 rows for each 'expensive' special
page. This can be paged through, reducing the annoyingness of 50 result
limits on the old system.

Rebuilding the cache can be forced by adding "recache=1" URL parameter,
but this will need to be refined with some sort of controls to prevent
abuse.

Added the user realname update to the installer's updater list, also.
2004-05-09 01:30:34 +00:00

43 lines
836 B
PHP

<?php
require_once( "QueryPage.php" );
class PopularPagesPage extends QueryPage {
function getName() {
return "Popularpages";
}
function isExpensive() {
# cur_counter is not indexed
return true;
}
function getSQL() {
return
"SELECT 'Popularpages' as type,
cur_namespace as namespace,
cur_title as title,
cur_counter as value
FROM cur
WHERE cur_namespace=0 AND cur_is_redirect=0";
}
function formatResult( $skin, $result ) {
global $wgLang;
$link = $skin->makeKnownLink( $result->title, "" );
$nv = wfMsg( "nviews", $wgLang->formatNum( $result->value ) );
return "{$link} ({$nv})";
}
}
function wfSpecialPopularpages()
{
list( $limit, $offset ) = wfCheckLimits();
$ppp = new PopularPagesPage();
return $ppp->doQuery( $offset, $limit );
}
?>