* replace use of deprecated makeKnownLinkObj() by linkKnown() in core special pages
[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->linkKnown(
59 $nt,
60 $text
61 );
62
63 $nl = wfMsgExt( 'nrevisions', array( 'parsemag', 'escape' ),
64 $wgLang->formatNum( $result->value ) );
65 $redirect = $result->redirect ? ' - ' . wfMsgHtml( 'isredirect' ) : '';
66 $nlink = $skin->linkKnown(
67 $nt,
68 $nl,
69 array(),
70 array( 'action' => 'history' )
71 ) . $redirect;
72
73 return wfSpecialList( $plink, $nlink );
74 }
75 }
76
77 function wfSpecialFewestrevisions() {
78 list( $limit, $offset ) = wfCheckLimits();
79 $frp = new FewestrevisionsPage();
80 $frp->doQuery( $offset, $limit );
81 }