]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - includes/specials/SpecialMostcategories.php
Mediawiki 1.15.2
[autoinstalls/mediawiki.git] / includes / specials / SpecialMostcategories.php
1 <?php
2 /**
3  * @file
4  * @ingroup SpecialPage
5  *
6  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
7  * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
8  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
9  */
10
11 /**
12  * implements Special:Mostcategories
13  * @ingroup SpecialPage
14  */
15 class MostcategoriesPage extends QueryPage {
16
17         function getName() { return 'Mostcategories'; }
18         function isExpensive() { return true; }
19         function isSyndicated() { return false; }
20
21         function getSQL() {
22                 $dbr = wfGetDB( DB_SLAVE );
23                 list( $categorylinks, $page) = $dbr->tableNamesN( 'categorylinks', 'page' );
24                 return
25                         "
26                         SELECT
27                                 'Mostcategories' as type,
28                                 page_namespace as namespace,
29                                 page_title as title,
30                                 COUNT(*) as value
31                         FROM $categorylinks
32                         LEFT JOIN $page ON cl_from = page_id
33                         WHERE page_namespace = " . NS_MAIN . "
34                         GROUP BY page_namespace, page_title
35                         HAVING COUNT(*) > 1
36                         ";
37         }
38
39         function formatResult( $skin, $result ) {
40                 global $wgLang;
41                 $title = Title::makeTitleSafe( $result->namespace, $result->title );
42
43                 $count = wfMsgExt( 'ncategories', array( 'parsemag', 'escape' ), $wgLang->formatNum( $result->value ) );
44                 $link = $skin->link( $title );
45                 return wfSpecialList( $link, $count );
46         }
47 }
48
49 /**
50  * constructor
51  */
52 function wfSpecialMostcategories() {
53         list( $limit, $offset ) = wfCheckLimits();
54
55         $wpp = new MostcategoriesPage();
56
57         $wpp->doQuery( $offset, $limit );
58 }