Only try to show character difference if it isn't empty
[lhc/web/wiklou.git] / includes / changes / EnhancedChangesList.php
index b8a2ac8..d8aeb77 100644 (file)
@@ -32,6 +32,11 @@ class EnhancedChangesList extends ChangesList {
         */
        protected $rc_cache;
 
+       /**
+        * @var TemplateParser
+        */
+       protected $templateParser;
+
        /**
         * @param IContextSource|Skin $obj
         * @param array $filterGroups Array of ChangesListFilterGroup objects (currently optional)
@@ -58,6 +63,7 @@ class EnhancedChangesList extends ChangesList {
                        $this->message,
                        $this->linkRenderer
                );
+               $this->templateParser = new TemplateParser();
        }
 
        /**
@@ -316,7 +322,7 @@ class EnhancedChangesList extends ChangesList {
                                $first--;
                        }
                        # Get net change
-                       $charDifference = $this->formatCharacterDifference( $block[$first], $block[$last] );
+                       $charDifference = $this->formatCharacterDifference( $block[$first], $block[$last] ) ?: false;
                }
 
                $numberofWatchingusers = $this->numberofWatchingusers( $block[0]->numberofWatchingusers );
@@ -340,8 +346,7 @@ class EnhancedChangesList extends ChangesList {
 
                $this->rcCacheIndex++;
 
-               $templateParser = new TemplateParser();
-               return $templateParser->processTemplate(
+               return $this->templateParser->processTemplate(
                        'EnhancedChangesListGroup',
                        $templateParams
                );
@@ -712,6 +717,11 @@ class EnhancedChangesList extends ChangesList {
                if ( $rc->getAttribute( 'rc_type' ) == RC_CATEGORIZE ) {
                        // For categorizations we must swap the category title with the page title!
                        $pageTitle = Title::newFromID( $rc->getAttribute( 'rc_cur_id' ) );
+                       if ( !$pageTitle ) {
+                               // The page has been deleted, but the RC entry
+                               // deletion job has not run yet. Just skip.
+                               return '';
+                       }
                }
 
                $retVal = ' ' . $this->msg( 'parentheses' )