From: Ævar Arnfjörð Bjarmason Date: Sat, 8 Oct 2005 21:20:18 +0000 (+0000) Subject: * Three new special pages: X-Git-Tag: 1.6.0~1500 X-Git-Url: http://git.cyclocoop.org/%40spipnet%40?a=commitdiff_plain;h=d33abb0ac0007df66a6d9ae35d2c3dcfb0fc564d;p=lhc%2Fweb%2Fwiklou.git * Three new special pages: - A special page to display the articles with the most revisions - A special page to display the articles with the most categories - A special page to display the articles with the most images --- diff --git a/includes/SpecialMostcategories.php b/includes/SpecialMostcategories.php new file mode 100644 index 0000000000..d532f88781 --- /dev/null +++ b/includes/SpecialMostcategories.php @@ -0,0 +1,68 @@ + + * @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 MostcategoriesPage extends QueryPage { + + function getName() { return 'Mostcategories'; } + function isExpensive() { return true; } + function isSyndicated() { return false; } + + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'categorylinks', 'page' ) ); + return + " + SELECT + 'Mostcategories' as type, + page_namespace as namespace, + page_title as title, + COUNT(*) as value + FROM $categorylinks + LEFT JOIN $page ON cl_from = page_id + WHERE page_namespace = " . NS_MAIN . " + GROUP BY cl_from + HAVING COUNT(*) > 1 + "; + } + + function formatResult( $skin, $result ) { + global $wgContLang; + + $nt = Title::makeTitle( $result->namespace, $result->title ); + $text = $wgContLang->convert( $nt->getPrefixedText() ); + + $plink = $skin->makeKnownLink( $nt->getPrefixedText(), $text ); + + $nl = wfMsg( 'ncategories', $result->value ); + $nlink = $skin->makeKnownLink( $wgContLang->specialPage( 'Categories' ), $nl, 'article=' . $nt->getPrefixedURL() ); + + return "{$plink} ({$nlink})"; + } +} + +/** + * constructor + */ +function wfSpecialMostcategories() { + list( $limit, $offset ) = wfCheckLimits(); + + $wpp = new MostcategoriesPage(); + + $wpp->doQuery( $offset, $limit ); +} + +?> diff --git a/includes/SpecialMostimages.php b/includes/SpecialMostimages.php new file mode 100644 index 0000000000..c9946c02e7 --- /dev/null +++ b/includes/SpecialMostimages.php @@ -0,0 +1,66 @@ + + * @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 MostimagesPage extends QueryPage { + + function getName() { return 'Mostimages'; } + function isExpensive() { return true; } + function isSyndicated() { return false; } + + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'imagelinks' ) ); + return + " + SELECT + 'Mostimages' as type, + " . NS_IMAGE . " as namespace, + il_to as title, + COUNT(*) as value + FROM $imagelinks + GROUP BY il_to + HAVING COUNT(*) > 1 + "; + } + + function formatResult( $skin, $result ) { + global $wgContLang; + + $nt = Title::makeTitle( $result->namespace, $result->title ); + $text = $wgContLang->convert( $nt->getPrefixedText() ); + + $plink = $skin->makeKnownLink( $nt->getPrefixedText(), $text ); + + $nl = wfMsg( 'nlinks', $result->value ); + $nlink = $skin->makeKnownLink( $nt->getPrefixedText() . '#filelinks', $nl ); + + return "{$plink} ({$nlink})"; + } +} + +/** + * Constructor + */ +function wfSpecialMostimages() { + list( $limit, $offset ) = wfCheckLimits(); + + $wpp = new MostimagesPage(); + + $wpp->doQuery( $offset, $limit ); +} + +?> diff --git a/includes/SpecialMostrevisions.php b/includes/SpecialMostrevisions.php new file mode 100644 index 0000000000..893d7d4aaa --- /dev/null +++ b/includes/SpecialMostrevisions.php @@ -0,0 +1,70 @@ + + * @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 MostrevisionsPage extends QueryPage { + + function getName() { return 'Mostrevisions'; } + function isExpensive() { return true; } + function isSyndicated() { return false; } + + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'revision', 'page' ) ); + return + " + SELECT + 'Mostrevisions' as type, + page_namespace as namespace, + page_title as title, + COUNT(*) as value + FROM $revision + LEFT JOIN $page ON page_id = rev_page + WHERE page_namespace = " . NS_MAIN . " + GROUP BY rev_page + HAVING COUNT(*) > 1 + "; + } + + function formatResult( $skin, $result ) { + global $wgContLang; + + $nt = Title::makeTitle( $result->namespace, $result->title ); + $text = $wgContLang->convert( $nt->getPrefixedText() ); + + $plink = $skin->makeKnownLink( $nt->getPrefixedText(), $text ); + + $nl = wfMsg( 'nrevisions', $result->value ); + $nlink = $skin->makeKnownLinkObj( $nt, $nl, 'action=history' ); + + return "{$plink} ({$nlink})"; + } +} + +/** + * constructor + */ +function wfSpecialMostrevisions() { + list( $limit, $offset ) = wfCheckLimits(); + + $wpp = new MostrevisionsPage(); + + $wpp->doQuery( $offset, $limit ); +} + +?> diff --git a/languages/Language.php b/languages/Language.php index a3aa0c8e55..683fc0b736 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -1137,6 +1137,9 @@ That comes to '''$5''' average edits per page, and '''$6''' views per edit.", 'nviews' => '$1 views', 'wantedpages' => 'Wanted pages', 'mostlinked' => 'Most linked to pages', +'mostcategories' => 'Most linked to categories', +'mostimages' => 'Most linked to images', +'mostrevisions' => 'Articles with the most revisions', 'nlinks' => '$1 links', 'allpages' => 'All pages', 'prefixindex' => 'Prefix index',