diff options
Diffstat (limited to 'includes/specials/SpecialAllpages.php')
-rw-r--r-- | includes/specials/SpecialAllpages.php | 80 |
1 files changed, 39 insertions, 41 deletions
diff --git a/includes/specials/SpecialAllpages.php b/includes/specials/SpecialAllpages.php index 5fa1aa47..a9cbf3ab 100644 --- a/includes/specials/SpecialAllpages.php +++ b/includes/specials/SpecialAllpages.php @@ -20,7 +20,7 @@ * @file * @ingroup SpecialPage */ - + /** * Implements Special:Allpages * @@ -58,24 +58,27 @@ class SpecialAllpages extends IncludableSpecialPage { * @param $par String: becomes "FOO" when called like Special:Allpages/FOO (default NULL) */ function execute( $par ) { - global $wgRequest, $wgOut, $wgContLang; + global $wgContLang; + $request = $this->getRequest(); + $out = $this->getOutput(); $this->setHeaders(); $this->outputHeader(); - $wgOut->allowClickjacking(); + $out->allowClickjacking(); # GET values - $from = $wgRequest->getVal( 'from', null ); - $to = $wgRequest->getVal( 'to', null ); - $namespace = $wgRequest->getInt( 'namespace' ); + $from = $request->getVal( 'from', null ); + $to = $request->getVal( 'to', null ); + $namespace = $request->getInt( 'namespace' ); $namespaces = $wgContLang->getNamespaces(); - $wgOut->setPagetitle( + $out->setPagetitle( ( $namespace > 0 && in_array( $namespace, array_keys( $namespaces) ) ) ? wfMsg( 'allinnamespace', str_replace( '_', ' ', $namespaces[$namespace] ) ) : wfMsg( 'allarticles' ) ); + $out->addModuleStyles( 'mediawiki.special' ); if( isset($par) ) { $this->showChunk( $namespace, $par, $to ); @@ -96,7 +99,7 @@ class SpecialAllpages extends IncludableSpecialPage { function namespaceForm( $namespace = NS_MAIN, $from = '', $to = '' ) { global $wgScript; $t = $this->getTitle(); - + $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) ); $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ); $out .= Html::hidden( 'title', $t->getPrefixedText() ); @@ -141,7 +144,7 @@ class SpecialAllpages extends IncludableSpecialPage { * @param $to String: list all pages to this name */ function showToplevel( $namespace = NS_MAIN, $from = '', $to = '' ) { - global $wgOut; + $output = $this->getOutput(); # TODO: Either make this *much* faster or cache the title index points # in the querycache table. @@ -220,7 +223,7 @@ class SpecialAllpages extends IncludableSpecialPage { if( !empty($lines) ) { $this->showChunk( $namespace, $from, $to ); } else { - $wgOut->addHTML( $this->namespaceForm( $namespace, $from, $to ) ); + $output->addHTML( $this->namespaceForm( $namespace, $from, $to ) ); } return; } @@ -240,14 +243,13 @@ class SpecialAllpages extends IncludableSpecialPage { $out2 = ''; } else { if( isset($from) || isset($to) ) { - global $wgUser; $out2 = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-form' ) ). '<tr> <td>' . $nsForm . '</td> <td class="mw-allpages-nav">' . - $wgUser->getSkin()->link( $this->getTitle(), wfMsgHtml ( 'allpages' ), + $this->getSkin()->link( $this->getTitle(), wfMsgHtml ( 'allpages' ), array(), array(), 'known' ) . "</td> </tr>" . @@ -256,7 +258,7 @@ class SpecialAllpages extends IncludableSpecialPage { $out2 = $nsForm; } } - $wgOut->addHTML( $out2 . $out ); + $output->addHTML( $out2 . $out ); } /** @@ -291,9 +293,9 @@ class SpecialAllpages extends IncludableSpecialPage { * @param $to String: list all pages to this name (default FALSE) */ function showChunk( $namespace = NS_MAIN, $from = false, $to = false ) { - global $wgOut, $wgUser, $wgContLang, $wgLang; - - $sk = $wgUser->getSkin(); + global $wgContLang, $wgLang; + $output = $this->getOutput(); + $sk = $this->getSkin(); $fromList = $this->getNamespaceKeyAndText($namespace, $from); $toList = $this->getNamespaceKeyAndText( $namespace, $to ); @@ -301,7 +303,7 @@ class SpecialAllpages extends IncludableSpecialPage { $n = 0; if ( !$fromList || !$toList ) { - $out = wfMsgWikiHtml( 'allpagesbadtitle' ); + $out = wfMsgExt( 'allpagesbadtitle', 'parse' ); } elseif ( !in_array( $namespace, array_keys( $namespaces ) ) ) { // Show errormessage and reset to NS_MAIN $out = wfMsgExt( 'allpages-bad-ns', array( 'parseinline' ), $namespace ); @@ -320,7 +322,7 @@ class SpecialAllpages extends IncludableSpecialPage { } $res = $dbr->select( 'page', - array( 'page_namespace', 'page_title', 'page_is_redirect' ), + array( 'page_namespace', 'page_title', 'page_is_redirect', 'page_id' ), $conds, __METHOD__, array( @@ -333,10 +335,10 @@ class SpecialAllpages extends IncludableSpecialPage { if( $res->numRows() > 0 ) { $out = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-chunk' ) ); while( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) { - $t = Title::makeTitle( $s->page_namespace, $s->page_title ); + $t = Title::newFromRow( $s ); if( $t ) { $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) . - $sk->linkKnown( $t, htmlspecialchars( $t->getText() ) ) . + $sk->link( $t ) . ($s->page_is_redirect ? '</div>' : '' ); } else { $link = '[[' . htmlspecialchars( $s->page_title ) . ']]'; @@ -373,7 +375,7 @@ class SpecialAllpages extends IncludableSpecialPage { 'page_title', array( 'page_namespace' => $namespace, 'page_title < '.$dbr->addQuotes($from) ), __METHOD__, - array( 'ORDER BY' => 'page_title DESC', + array( 'ORDER BY' => 'page_title DESC', 'LIMIT' => $this->maxPerPage, 'OFFSET' => ($this->maxPerPage - 1 ) ) ); @@ -409,7 +411,7 @@ class SpecialAllpages extends IncludableSpecialPage { $nsForm . '</td> <td class="mw-allpages-nav">' . - $sk->link( $self, wfMsgHtml ( 'allpages' ), array(), array(), 'known' ); + $sk->link( $self, wfMsgHtml ( 'allpages' ) ); # Do we put a previous link ? if( isset( $prevTitle ) && $pt = $prevTitle->getText() ) { @@ -420,7 +422,7 @@ class SpecialAllpages extends IncludableSpecialPage { $prevLink = $sk->linkKnown( $self, - htmlspecialchars( wfMsg( 'prevpage', $pt ) ), + wfMessage( 'prevpage', $pt )->escaped(), array(), $query ); @@ -437,7 +439,7 @@ class SpecialAllpages extends IncludableSpecialPage { $nextLink = $sk->linkKnown( $self, - htmlspecialchars( wfMsg( 'nextpage', $t->getText() ) ), + wfMessage( 'nextpage', $t->getText() )->escaped(), array(), $query ); @@ -446,20 +448,18 @@ class SpecialAllpages extends IncludableSpecialPage { $out2 .= "</td></tr></table>"; } - $wgOut->addHTML( $out2 . $out ); - if( isset($prevLink) or isset($nextLink) ) { - $wgOut->addHTML( '<hr /><p class="mw-allpages-nav">' ); - if( isset( $prevLink ) ) { - $wgOut->addHTML( $prevLink ); - } - if( isset( $prevLink ) && isset( $nextLink ) ) { - $wgOut->addHTML( wfMsgExt( 'pipe-separator' , 'escapenoentities' ) ); - } - if( isset( $nextLink ) ) { - $wgOut->addHTML( $nextLink ); - } - $wgOut->addHTML( '</p>' ); + $output->addHTML( $out2 . $out ); + + $links = array(); + if ( isset( $prevLink ) ) $links[] = $prevLink; + if ( isset( $nextLink ) ) $links[] = $nextLink; + if ( count( $links ) ) { + $output->addHTML( + Html::element( 'hr' ) . + Html::rawElement( 'div', array( 'class' => 'mw-allpages-nav' ), + $wgLang->pipeList( $links ) + ) ); } } @@ -468,17 +468,15 @@ class SpecialAllpages extends IncludableSpecialPage { * @param $ns Integer: the namespace of the article * @param $text String: the name of the article * @return array( int namespace, string dbkey, string pagename ) or NULL on error - * @static (sort of) - * @access private */ - function getNamespaceKeyAndText($ns, $text) { + protected function getNamespaceKeyAndText($ns, $text) { if ( $text == '' ) return array( $ns, '', '' ); # shortcut for common case $t = Title::makeTitleSafe($ns, $text); if ( $t && $t->isLocal() ) { return array( $t->getNamespace(), $t->getDBkey(), $t->getText() ); - } else if ( $t ) { + } elseif ( $t ) { return null; } |