diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
commit | ca32f08966f1b51fcb19460f0996bb0c4048e6fe (patch) | |
tree | ec04cc15b867bc21eedca904cea9af0254531a11 /includes/specials/SpecialMostlinked.php | |
parent | a22fbfc60f36f5f7ee10d5ae6fe347340c2ee67c (diff) |
Update to MediaWiki 1.18.0
* also update ArchLinux skin to chagnes in MonoBook
* Use only css to hide our menu bar when printing
Diffstat (limited to 'includes/specials/SpecialMostlinked.php')
-rw-r--r-- | includes/specials/SpecialMostlinked.php | 62 |
1 files changed, 21 insertions, 41 deletions
diff --git a/includes/specials/SpecialMostlinked.php b/includes/specials/SpecialMostlinked.php index c731588a..58f686e8 100644 --- a/includes/specials/SpecialMostlinked.php +++ b/includes/specials/SpecialMostlinked.php @@ -32,43 +32,34 @@ */ class MostlinkedPage extends QueryPage { - function getName() { return 'Mostlinked'; } + function __construct( $name = 'Mostlinked' ) { + parent::__construct( $name ); + } + function isExpensive() { return true; } function isSyndicated() { return false; } - function getSQL() { - global $wgMiserMode; - - $dbr = wfGetDB( DB_SLAVE ); - - # In miser mode, reduce the query cost by adding a threshold for large wikis - if ( $wgMiserMode ) { - $numPages = SiteStats::pages(); - if ( $numPages > 10000 ) { - $cutoff = 100; - } elseif ( $numPages > 100 ) { - $cutoff = intval( sqrt( $numPages ) ); - } else { - $cutoff = 1; - } - } else { - $cutoff = 1; - } - - list( $pagelinks, $page ) = $dbr->tableNamesN( 'pagelinks', 'page' ); - return - "SELECT 'Mostlinked' AS type, - pl_namespace AS namespace, - pl_title AS title, - COUNT(*) AS value - FROM $pagelinks - LEFT JOIN $page ON pl_namespace=page_namespace AND pl_title=page_title - GROUP BY pl_namespace, pl_title - HAVING COUNT(*) > $cutoff"; + function getQueryInfo() { + return array ( + 'tables' => array ( 'pagelinks', 'page' ), + 'fields' => array ( 'pl_namespace AS namespace', + 'pl_title AS title', + 'COUNT(*) AS value', + 'page_namespace' ), + 'options' => array ( 'HAVING' => 'COUNT(*) > 1', + 'GROUP BY' => 'pl_namespace, pl_title, '. + 'page_namespace' ), + 'join_conds' => array ( 'page' => array ( 'LEFT JOIN', + array ( 'page_namespace = pl_namespace', + 'page_title = pl_title' ) ) ) + ); } /** * Pre-fill the link cache + * + * @param $db DatabaseBase + * @param $res */ function preprocessResults( $db, $res ) { if( $db->numRows( $res ) > 0 ) { @@ -114,14 +105,3 @@ class MostlinkedPage extends QueryPage { return wfSpecialList( $link, $wlh ); } } - -/** - * constructor - */ -function wfSpecialMostlinked() { - list( $limit, $offset ) = wfCheckLimits(); - - $wpp = new MostlinkedPage(); - - $wpp->doQuery( $offset, $limit ); -} |