* New special page: SpecialMostlinked
authorÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Mon, 15 Aug 2005 02:57:19 +0000 (02:57 +0000)
committerÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Mon, 15 Aug 2005 02:57:19 +0000 (02:57 +0000)
includes/QueryPage.php
includes/SpecialMostlinked.php [new file with mode: 0644]
languages/Language.php

index 172849d..d6ec768 100644 (file)
@@ -29,6 +29,7 @@ $wgQueryPages = array(
     array( 'UncategorizedPagesPage',    'Uncategorizedpages'),
     array( 'UnusedimagesPage',          'Unusedimages'      ),
     array( 'WantedPagesPage',           'Wantedpages'       ),
+    array( 'MostlinkedPage',           'Mostlinked'        ),
 );
     
 global $wgDisableCounters;
diff --git a/includes/SpecialMostlinked.php b/includes/SpecialMostlinked.php
new file mode 100644 (file)
index 0000000..008a2d4
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/**
+ *
+ * @package MediaWiki
+ * @subpackage SpecialPage
+ */
+
+require_once ( 'QueryPage.php' ) ;
+
+/**
+ *
+ * @package MediaWiki
+ * @subpackage SpecialPage
+ */
+class MostlinkedPage extends QueryPage {
+
+       function getName() {
+               return 'Mostlinked';
+       }
+
+       function isExpensive() {
+               return true;
+       }
+       function isSyndicated() { return false; }
+
+       function getSQL() {
+               $dbr =& wfGetDB( DB_SLAVE );
+               extract( $dbr->tableNames( 'pagelinks', 'page' ) );
+               return
+                       "SELECT 'Mostlinked' AS type,
+                               pl_namespace AS namespace,
+                               pl_title AS title,
+                               COUNT(*) AS value,
+                               page_namespace
+                       FROM $pagelinks
+                       LEFT JOIN $page ON pl_namespace=page_namespace AND pl_title=page_title
+                       GROUP BY pl_namespace,pl_title
+                       HAVING COUNT(*) > 1";
+       }
+
+       function formatResult( $skin, $result ) {
+               global $wgContLang;
+
+               $nt = Title::makeTitle( $result->namespace, $result->title );
+               $text = $wgContLang->convert( $nt->getPrefixedText() );
+               if ( is_null( $result->page_namespace ) )
+                       $plink = $skin->makeBrokenLink( $nt->getPrefixedText(), $text );
+               else
+                       $plink = $skin->makeKnownLink( $nt->getPrefixedText(), $text );
+               
+               $nl = wfMsg( "nlinks", $result->value );
+               $nlink = $skin->makeKnownLink( $wgContLang->specialPage( "Whatlinkshere" ), $nl, "target=" . $nt->getPrefixedURL() );
+
+               return "{$plink} ({$nlink})";
+       }
+}
+
+/**
+ * constructor
+ */
+function wfSpecialMostlinked() {
+       list( $limit, $offset ) = wfCheckLimits();
+
+       $wpp = new MostlinkedPage();
+
+       $wpp->doQuery( $offset, $limit );
+}
+
+?>
index db87a74..292309f 100644 (file)
@@ -1128,6 +1128,7 @@ That comes to '''$5''' average edits per page, and '''$6''' views per edit.",
 'popularpages' => 'Popular pages',
 'nviews'               => '$1 views',
 'wantedpages'  => 'Wanted pages',
+'mostlinked'   => 'Most linked to pages',
 'nlinks'               => '$1 links',
 'allpages'             => 'All pages',
 'randompage'   => 'Random page',