check that $wgArticle is an instance of the Article class in Skin::pageStats() per...
[lhc/web/wiklou.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 }