Moved the @todo to the bottom of the comment; seems doxygen is taking the "This progr...
[lhc/web/wiklou.git] / includes / specials / SpecialWhatlinkshere.php
index 7af8ac8..32c020b 100644 (file)
@@ -1,13 +1,29 @@
 <?php
 /**
- * @todo Use some variant of Pager or something; the pagination here is lousy.
+ * Implements Special:Whatlinkshere
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @ingroup SpecialPage
+ * @todo Use some variant of Pager or something; the pagination here is lousy.
  */
 
 /**
- * implements Special:Whatlinkshere
+ * Implements Special:Whatlinkshere
+ *
  * @ingroup SpecialPage
  */
 class SpecialWhatLinksHere extends SpecialPage {
@@ -60,7 +76,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                        return;
                }
 
-               $this->selfTitle = SpecialPage::getTitleFor( 'Whatlinkshere', $this->target->getPrefixedDBkey() );
+               $this->selfTitle = $this->getTitle( $this->target->getPrefixedDBkey() );
 
                $wgOut->setPageTitle( wfMsg( 'whatlinkshere-title', $this->target->getPrefixedText() ) );
                $wgOut->setSubtitle( wfMsg( 'whatlinkshere-backlink', $this->skin->link( $this->target, $this->target->getPrefixedText(), array(), array( 'redirect' => 'no'  ) ) ) );
@@ -176,8 +192,6 @@ class SpecialWhatLinksHere extends SpecialPage {
                                $row->is_image = 0;
                                $rows[$row->page_id] = $row;
                        }
-                       $dbr->freeResult( $plRes );
-
                }
                if( !$hidetrans ) {
                        while ( $row = $dbr->fetchObject( $tlRes ) ) {
@@ -185,7 +199,6 @@ class SpecialWhatLinksHere extends SpecialPage {
                                $row->is_image = 0;
                                $rows[$row->page_id] = $row;
                        }
-                       $dbr->freeResult( $tlRes );
                }
                if( !$hideimages ) {
                        while ( $row = $dbr->fetchObject( $ilRes ) ) {
@@ -193,7 +206,6 @@ class SpecialWhatLinksHere extends SpecialPage {
                                $row->is_image = 1;
                                $rows[$row->page_id] = $row;
                        }
-                       $dbr->freeResult( $ilRes );
                }
 
                // Sort by key and then change the keys to 0-based indices
@@ -249,11 +261,13 @@ class SpecialWhatLinksHere extends SpecialPage {
        }
 
        protected function listItem( $row, $nt, $notClose = false ) {
+               global $wgLang;
+
                # local message cache
                static $msgcache = null;
                if ( $msgcache === null ) {
                        static $msgs = array( 'isredirect', 'istemplate', 'semicolon-separator',
-                               'whatlinkshere-links', 'isimage' );
+                               'whatlinkshere-links', 'isimage', 'hist' );
                        $msgcache = array();
                        foreach ( $msgs as $msg ) {
                                $msgcache[$msg] = wfMsgExt( $msg, array( 'escapenoentities' ) );
@@ -288,8 +302,10 @@ class SpecialWhatLinksHere extends SpecialPage {
                }
 
                # Space for utilities links, with a what-links-here link provided
-               $wlhLink = $this->wlhLink( $nt, $msgcache['whatlinkshere-links'] );
-               $wlh = Xml::wrapClass( "($wlhLink)", 'mw-whatlinkshere-tools' );
+               $tools = array();
+               $tools[] = $this->wlhLink( $nt, $msgcache['whatlinkshere-links'] );
+               $tools[] = $this->skin->linkKnown( $nt, $msgcache['hist'], array(), array( 'action' => 'history' ) );
+               $wlh = Xml::wrapClass( '(' . $wgLang->pipeList( $tools ) . ')', 'mw-whatlinkshere-tools' );
 
                return $notClose ?
                        Xml::openElement( 'li' ) . "$link $propsText $wlh\n" :
@@ -303,7 +319,7 @@ class SpecialWhatLinksHere extends SpecialPage {
        protected function wlhLink( Title $target, $text ) {
                static $title = null;
                if ( $title === null )
-                       $title = SpecialPage::getTitleFor( 'Whatlinkshere' );
+                       $title = $this->getTitle();
 
                return $this->skin->linkKnown(
                        $title,
@@ -368,7 +384,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                $f = Xml::openElement( 'form', array( 'action' => $wgScript ) );
                
                # Values that should not be forgotten
-               $f .= Xml::hidden( 'title', SpecialPage::getTitleFor( 'Whatlinkshere' )->getPrefixedText() );
+               $f .= Xml::hidden( 'title', $this->getTitle()->getPrefixedText() );
                foreach ( $this->opts->getUnconsumedValues() as $name => $value ) {
                        $f .= Xml::hidden( $name, $value );
                }