Merge "Remove perf tracking code that was moved to WikimediaEvents in Ib300af5c"
[lhc/web/wiklou.git] / includes / logging / LogFormatter.php
index 68404bf..0f1e1f7 100644 (file)
@@ -22,6 +22,8 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  * @since 1.19
  */
+use MediaWiki\Linker\LinkRenderer;
+use MediaWiki\MediaWikiServices;
 
 /**
  * Implements the default log formatting.
@@ -101,6 +103,11 @@ class LogFormatter {
        /** @var string */
        protected $irctext = false;
 
+       /**
+        * @var LinkRenderer|null
+        */
+       private $linkRenderer;
+
        protected function __construct( LogEntry $entry ) {
                $this->entry = $entry;
                $this->context = RequestContext::getMain();
@@ -114,6 +121,26 @@ class LogFormatter {
                $this->context = $context;
        }
 
+       /**
+        * @since 1.30
+        * @param LinkRenderer $linkRenderer
+        */
+       public function setLinkRenderer( LinkRenderer $linkRenderer ) {
+               $this->linkRenderer = $linkRenderer;
+       }
+
+       /**
+        * @since 1.30
+        * @return LinkRenderer
+        */
+       public function getLinkRenderer() {
+               if ( $this->linkRenderer !== null ) {
+                       return $this->linkRenderer;
+               } else {
+                       return MediaWikiServices::getInstance()->getLinkRenderer();
+               }
+       }
+
        /**
         * Set the visibility restrictions for displaying content.
         * If set to public, and an item is deleted, then it will be replaced
@@ -839,10 +866,12 @@ class LogFormatter {
                        case 'title':
                        case 'title-link':
                                $title = Title::newFromText( $value );
-                               if ( $title ) {
-                                       $value = [];
-                                       ApiQueryBase::addTitleInfo( $value, $title, "{$name}_" );
+                               if ( !$title ) {
+                                       // Huh? Do something halfway sane.
+                                       $title = SpecialPage::getTitleFor( 'Badtitle', $value );
                                }
+                               $value = [];
+                               ApiQueryBase::addTitleInfo( $value, $title, "{$name}_" );
                                return $value;
 
                        case 'user':