]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - includes/specials/SpecialFewestrevisions.php
MediaWiki 1.15.4-scripts
[autoinstallsdev/mediawiki.git] / includes / specials / SpecialFewestrevisions.php
1 <?php
2 /**
3  * @file
4  * @ingroup SpecialPage
5  */
6
7 /**
8  * Special page for listing the articles with the fewest revisions.
9  *
10  * @ingroup SpecialPage
11  * @author Martin Drashkov
12  */
13 class FewestrevisionsPage extends QueryPage {
14
15         function getName() {
16                 return 'Fewestrevisions';
17         }
18
19         function isExpensive() {
20                 return true;
21         }
22
23         function isSyndicated() {
24                 return false;
25         }
26
27         function getSql() {
28                 $dbr = wfGetDB( DB_SLAVE );
29                 list( $revision, $page ) = $dbr->tableNamesN( 'revision', 'page' );
30
31                 return "SELECT 'Fewestrevisions' as type,
32                                 page_namespace as namespace,
33                                 page_title as title,
34                                 page_is_redirect as redirect,
35                                 COUNT(*) as value
36                         FROM $revision
37                         JOIN $page ON page_id = rev_page
38                         WHERE page_namespace = " . NS_MAIN . "
39                         GROUP BY page_namespace, page_title, page_is_redirect
40                         HAVING COUNT(*) > 1";
41                         // ^^^ This was probably here to weed out redirects.
42                         // Since we mark them as such now, it might be
43                         // useful to remove this. People _do_ create pages
44                         // and never revise them, they aren't necessarily
45                         // redirects.
46         }
47
48         function sortDescending() {
49                 return false;
50         }
51
52         function formatResult( $skin, $result ) {
53                 global $wgLang, $wgContLang;
54
55                 $nt = Title::makeTitleSafe( $result->namespace, $result->title );
56                 $text = $wgContLang->convert( $nt->getPrefixedText() );
57
58                 $plink = $skin->makeKnownLinkObj( $nt, $text );
59
60                 $nl = wfMsgExt( 'nrevisions', array( 'parsemag', 'escape'),
61                         $wgLang->formatNum( $result->value ) );
62                 $redirect = $result->redirect ? ' - ' . wfMsg( 'isredirect' ) : '';
63                 $nlink = $skin->makeKnownLinkObj( $nt, $nl, 'action=history' ) . $redirect;
64
65
66                 return wfSpecialList( $plink, $nlink );
67         }
68 }
69
70 function wfSpecialFewestrevisions() {
71         list( $limit, $offset ) = wfCheckLimits();
72         $frp = new FewestrevisionsPage();
73         $frp->doQuery( $offset, $limit );
74 }