From: addshore Date: Thu, 3 Dec 2015 13:09:34 +0000 (+0100) Subject: Fix CatMemberChanges for numeric category names X-Git-Tag: 1.31.0-rc.0~8823^2 X-Git-Url: http://git.cyclocoop.org/%24self?a=commitdiff_plain;h=84568051da21eff8e23a146b86c080eb69771b7a;p=lhc%2Fweb%2Fwiklou.git Fix CatMemberChanges for numeric category names Change-Id: I5ff3ff2d26d8e2d0b4250843f028eabc96020ccc --- diff --git a/includes/jobqueue/jobs/CategoryMembershipChangeJob.php b/includes/jobqueue/jobs/CategoryMembershipChangeJob.php index 4487970049..2b0018d4a2 100644 --- a/includes/jobqueue/jobs/CategoryMembershipChangeJob.php +++ b/includes/jobqueue/jobs/CategoryMembershipChangeJob.php @@ -205,6 +205,13 @@ class CategoryMembershipChangeJob extends Job { return array( $categoryInserts, $categoryDeletes ); } + /** + * @param Title $title + * @param Revision $rev + * @param string $parseTimestamp TS_MW + * + * @return string[] category names + */ private function getCategoriesAtRev( Title $title, Revision $rev, $parseTimestamp ) { $content = $rev->getContent(); $options = $content->getContentHandler()->makeParserOptions( 'canonical' ); @@ -213,7 +220,9 @@ class CategoryMembershipChangeJob extends Job { // but that's more complicated than it's worth. $output = $content->getParserOutput( $title, $rev->getId(), $options ); - return array_keys( $output->getCategories() ); + // array keys will cast numeric category names to ints + // so we need to cast them back to strings to avoid breaking things! + return array_map( 'strval', array_keys( $output->getCategories() ) ); } public function getDeduplicationInfo() {