Merge "Revert "Adding sanity check to Title::isRedirect().""
[lhc/web/wiklou.git] / includes / specials / SpecialUnwatchedpages.php
index 5ad9bb5..4bd0232 100644 (file)
@@ -34,7 +34,7 @@ class UnwatchedpagesPage extends QueryPage {
        function __construct( $name = 'Unwatchedpages' ) {
                parent::__construct( $name, 'unwatchedpages' );
        }
-       
+
        function isExpensive() { return true; }
        function isSyndicated() { return false; }
 
@@ -55,28 +55,36 @@ class UnwatchedpagesPage extends QueryPage {
        }
 
        function sortDescending() { return false; }
-       
+
        function getOrderFields() {
                return array( 'page_namespace', 'page_title' );
        }
 
+       /**
+        * @param $skin Skin
+        * @param $result
+        * @return string
+        */
        function formatResult( $skin, $result ) {
                global $wgContLang;
 
-               $nt = Title::makeTitle( $result->namespace, $result->title );
+               $nt = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$nt ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
+
                $text = $wgContLang->convert( $nt->getPrefixedText() );
 
-               $plink = $skin->linkKnown(
-                       $nt,
-                       htmlspecialchars( $text )
-               );
-               $wlink = $skin->linkKnown(
+               $plink = Linker::linkKnown( $nt, htmlspecialchars( $text ) );
+               $token = WatchAction::getWatchToken( $nt, $this->getUser() );
+               $wlink = Linker::linkKnown(
                        $nt,
-                       wfMsgHtml( 'watch' ),
+                       $this->msg( 'watch' )->escaped(),
                        array(),
-                       array( 'action' => 'watch' )
+                       array( 'action' => 'watch', 'token' => $token )
                );
 
-               return wfSpecialList( $plink, $wlink );
+               return $this->getLanguage()->specialList( $plink, $wlink );
        }
 }