From: Ævar Arnfjörð Bjarmason Date: Sun, 23 Oct 2005 18:26:37 +0000 (+0000) Subject: * A querypage to show the most linked to categories X-Git-Tag: 1.6.0~1345 X-Git-Url: http://git.cyclocoop.org/%22.htmlspecialchars%28%24url_syndic%29.%22?a=commitdiff_plain;h=bb4e449437b69caa161434ef910db0af5a8b245f;p=lhc%2Fweb%2Fwiklou.git * A querypage to show the most linked to categories --- diff --git a/includes/QueryPage.php b/includes/QueryPage.php index 28ca360d54..05de61e8db 100644 --- a/includes/QueryPage.php +++ b/includes/QueryPage.php @@ -27,6 +27,7 @@ $wgQueryPages = array( array( 'LongPagesPage', 'Longpages' ), array( 'MostcategoriesPage', 'Mostcategories' ), array( 'MostimagesPage', 'Mostimages' ), + array( 'MostlinkedCategoriesPage', 'Mostlinkedcategories' ), array( 'MostlinkedPage', 'Mostlinked' ), array( 'MostrevisionsPage', 'Mostrevisions' ), array( 'NewPagesPage', 'Newpages' ), diff --git a/includes/SpecialMostlinkedcategories.php b/includes/SpecialMostlinkedcategories.php new file mode 100644 index 0000000000..3dca7256cf --- /dev/null +++ b/includes/SpecialMostlinkedcategories.php @@ -0,0 +1,85 @@ + + * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason + * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later + */ + +/* */ +require_once 'QueryPage.php'; + +/** + * @package MediaWiki + * @subpackage SpecialPage + */ +class MostlinkedCategoriesPage extends QueryPage { + + function getName() { return 'Mostlinkedcategories'; } + function isExpensive() { return true; } + function isSyndicated() { return false; } + + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'categorylinks', 'page' ) ); + $name = $dbr->addQuotes( $this->getName() ); + return + " + SELECT + $name as type, + " . NS_CATEGORY . " as namespace, + cl_to as title, + COUNT(*) as value + FROM $categorylinks + GROUP BY cl_to + "; + } + + function sortDescending() { return true; } + + /** + * Fetch user page links and cache their existence + */ + function preprocessResults( &$db, &$res ) { + global $wgLinkCache; + + $batch = new LinkBatch; + while ( $row = $db->fetchObject( $res ) ) + $batch->addObj( Title::makeTitleSafe( NS_USER, $row->title ) ); + $batch->execute( $wgLinkCache ); + + // Back to start for display + if ( $db->numRows( $res ) > 0 ) + // If there are no rows we get an error seeking. + $db->dataSeek( $res, 0 ); + } + + function formatResult( $skin, $result ) { + global $wgContLang; + + $nt = Title::makeTitle( $result->namespace, $result->title ); + $text = $wgContLang->convert( $nt->getText() ); + + $plink = $skin->makeLinkObj( $nt, htmlspecialchars( $text ) ); + + $nlinks = wfMsg( 'ncategories', $result->value ); + return "$plink ($nlinks)"; + } +} + +/** + * constructor + */ +function wfSpecialMostlinkedCategories() { + list( $limit, $offset ) = wfCheckLimits(); + + $wpp = new MostlinkedCategoriesPage(); + + $wpp->doQuery( $offset, $limit ); +} + +?> diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php index 833dd92d6c..cb3cbfb9fb 100644 --- a/includes/SpecialPage.php +++ b/includes/SpecialPage.php @@ -44,6 +44,7 @@ $wgSpecialPages = array( 'Wantedpages' => new IncludableSpecialPage( 'Wantedpages' ), 'Wantedcategories' => new SpecialPage( 'Wantedcategories' ), 'Mostlinked' => new SpecialPage( 'Mostlinked' ), + 'Mostlinkedcategories' => new SpecialPage( 'Mostlinkedcategories' ), 'Mostcategories' => new SpecialPage( 'Mostcategories' ), 'Mostimages' => new SpecialPage( 'Mostimages' ), 'Mostrevisions' => new SpecialPage( 'Mostrevisions' ), diff --git a/languages/Language.php b/languages/Language.php index 387d27187e..8c3f563797 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -1145,6 +1145,7 @@ That comes to '''$5''' average edits per page, and '''$6''' views per edit.", 'wantedcategories' => 'Wanted categories', 'wantedpages' => 'Wanted pages', 'mostlinked' => 'Most linked to pages', +'mostlinkedcategories' => 'Most linked to categories', 'mostcategories' => 'Most linked to categories', 'mostimages' => 'Most linked to images', 'mostrevisions' => 'Articles with the most revisions',