diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2011-12-03 13:29:22 +0100 |
commit | ca32f08966f1b51fcb19460f0996bb0c4048e6fe (patch) | |
tree | ec04cc15b867bc21eedca904cea9af0254531a11 /includes/specials/SpecialWithoutinterwiki.php | |
parent | a22fbfc60f36f5f7ee10d5ae6fe347340c2ee67c (diff) |
Update to MediaWiki 1.18.0
* also update ArchLinux skin to chagnes in MonoBook
* Use only css to hide our menu bar when printing
Diffstat (limited to 'includes/specials/SpecialWithoutinterwiki.php')
-rw-r--r-- | includes/specials/SpecialWithoutinterwiki.php | 66 |
1 files changed, 31 insertions, 35 deletions
diff --git a/includes/specials/SpecialWithoutinterwiki.php b/includes/specials/SpecialWithoutinterwiki.php index 90c1f441..9d91b833 100644 --- a/includes/specials/SpecialWithoutinterwiki.php +++ b/includes/specials/SpecialWithoutinterwiki.php @@ -30,8 +30,14 @@ class WithoutInterwikiPage extends PageQueryPage { private $prefix = ''; - function getName() { - return 'Withoutinterwiki'; + function __construct( $name = 'Withoutinterwiki' ) { + parent::__construct( $name ); + } + + function execute( $par ) { + global $wgRequest; + $this->prefix = Title::capitalize( $wgRequest->getVal( 'prefix', $par ), NS_MAIN ); + parent::execute( $par ); } function getPageHeader() { @@ -43,9 +49,9 @@ class WithoutInterwikiPage extends PageQueryPage { } $prefix = $this->prefix; - $t = SpecialPage::getTitleFor( $this->getName() ); + $t = $this->getTitle(); - return Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) . + return Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) . Xml::openElement( 'fieldset' ) . Xml::element( 'legend', null, wfMsg( 'withoutinterwiki-legend' ) ) . Html::hidden( 'title', $t->getPrefixedText() ) . @@ -59,6 +65,10 @@ class WithoutInterwikiPage extends PageQueryPage { return false; } + function getOrderFields() { + return array( 'page_namespace', 'page_title' ); + } + function isExpensive() { return true; } @@ -67,36 +77,22 @@ class WithoutInterwikiPage extends PageQueryPage { return false; } - function getSQL() { - $dbr = wfGetDB( DB_SLAVE ); - list( $page, $langlinks ) = $dbr->tableNamesN( 'page', 'langlinks' ); - $prefix = $this->prefix ? 'AND page_title' . $dbr->buildLike( $this->prefix , $dbr->anyString() ) : ''; - return - "SELECT 'Withoutinterwiki' AS type, - page_namespace AS namespace, - page_title AS title, - page_title AS value - FROM $page - LEFT JOIN $langlinks - ON ll_from = page_id - WHERE ll_title IS NULL - AND page_namespace=" . NS_MAIN . " - AND page_is_redirect = 0 - {$prefix}"; - } - - function setPrefix( $prefix = '' ) { - $this->prefix = $prefix; + function getQueryInfo() { + $query = array ( + 'tables' => array ( 'page', 'langlinks' ), + 'fields' => array ( 'page_namespace AS namespace', + 'page_title AS title', + 'page_title AS value' ), + 'conds' => array ( 'll_title IS NULL', + 'page_namespace' => NS_MAIN, + 'page_is_redirect' => 0 ), + 'join_conds' => array ( 'langlinks' => array ( + 'LEFT JOIN', 'll_from = page_id' ) ) + ); + if ( $this->prefix ) { + $dbr = wfGetDB( DB_SLAVE ); + $query['conds'][] = 'page_title ' . $dbr->buildLike( $this->prefix, $dbr->anyString() ); + } + return $query; } - -} - -function wfSpecialWithoutinterwiki() { - global $wgRequest; - list( $limit, $offset ) = wfCheckLimits(); - // Only searching the mainspace anyway - $prefix = Title::capitalize( $wgRequest->getVal( 'prefix' ), NS_MAIN ); - $wip = new WithoutInterwikiPage(); - $wip->setPrefix( $prefix ); - $wip->doQuery( $offset, $limit ); } |