X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=sidebyside;f=includes%2Fcontent%2FAbstractContent.php;h=e7446550bbb15179089b71c5cbe74d7df9bbb180;hb=8678e32b8db50b57178a173ac60e4da3fd89f57c;hp=816572ca01aa734ab2c312536c7e9c94923ed892;hpb=d5810f763a627ec25334d82f7e69b4d6b1d8a515;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/content/AbstractContent.php b/includes/content/AbstractContent.php index 816572ca01..e7446550bb 100644 --- a/includes/content/AbstractContent.php +++ b/includes/content/AbstractContent.php @@ -204,13 +204,13 @@ abstract class AbstractContent implements Content { * Returns a list of DataUpdate objects for recording information about this * Content in some secondary data store. * - * This default implementation calls - * $this->getParserOutput( $content, $title, null, null, false ), - * and then calls getSecondaryDataUpdates( $title, $recursive ) on the - * resulting ParserOutput object. + * This default implementation returns a LinksUpdate object and calls the + * SecondaryDataUpdates hook. * * Subclasses may override this to determine the secondary data updates more * efficiently, preferably without the need to generate a parser output object. + * They should however make sure to call SecondaryDataUpdates to give extensions + * a chance to inject additional updates. * * @since 1.21 * @@ -224,12 +224,19 @@ abstract class AbstractContent implements Content { * @see Content::getSecondaryDataUpdates() */ public function getSecondaryDataUpdates( Title $title, Content $old = null, - $recursive = true, ParserOutput $parserOutput = null ) { + $recursive = true, ParserOutput $parserOutput = null + ) { if ( $parserOutput === null ) { $parserOutput = $this->getParserOutput( $title, null, null, false ); } - return $parserOutput->getSecondaryDataUpdates( $title, $recursive ); + $updates = [ + new LinksUpdate( $title, $parserOutput, $recursive ) + ]; + + Hooks::run( 'SecondaryDataUpdates', [ $title, $old, $recursive, $parserOutput, &$updates ] ); + + return $updates; } /** @@ -247,7 +254,7 @@ abstract class AbstractContent implements Content { } // recursive check to follow double redirects $recurse = $wgMaxRedirects; - $titles = array( $title ); + $titles = [ $title ]; while ( --$recurse > 0 ) { if ( $title->isRedirect() ) { $page = WikiPage::factory( $title ); @@ -375,7 +382,7 @@ abstract class AbstractContent implements Content { * * @see Content::preloadTransform */ - public function preloadTransform( Title $title, ParserOptions $popts, $params = array() ) { + public function preloadTransform( Title $title, ParserOptions $popts, $params = [] ) { return $this; } @@ -386,7 +393,7 @@ abstract class AbstractContent implements Content { * * @see Content::prepareSave */ - public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user ) { + public function prepareSave( WikiPage $page, $flags, $parentRevId, User $user ) { if ( $this->isValid() ) { return Status::newGood(); } else { @@ -405,9 +412,9 @@ abstract class AbstractContent implements Content { * @see Content::getDeletionUpdates */ public function getDeletionUpdates( WikiPage $page, ParserOutput $parserOutput = null ) { - return array( + return [ new LinksDeletionUpdate( $page ), - ); + ]; } /** @@ -439,14 +446,14 @@ abstract class AbstractContent implements Content { */ public function convert( $toModel, $lossy = '' ) { if ( $this->getModel() === $toModel ) { - //nothing to do, shorten out. + // nothing to do, shorten out. return $this; } $lossy = ( $lossy === 'lossy' ); // string flag, convert to boolean for convenience $result = false; - Hooks::run( 'ConvertContent', array( $this, $toModel, $lossy, &$result ) ); + Hooks::run( 'ConvertContent', [ $this, $toModel, $lossy, &$result ] ); return $result; } @@ -481,7 +488,7 @@ abstract class AbstractContent implements Content { $po = new ParserOutput(); if ( Hooks::run( 'ContentGetParserOutput', - array( $this, $title, $revId, $options, $generateHtml, &$po ) ) ) { + [ $this, $title, $revId, $options, $generateHtml, &$po ] ) ) { // Save and restore the old value, just in case something is reusing // the ParserOptions object in some weird way. @@ -491,7 +498,7 @@ abstract class AbstractContent implements Content { $options->setRedirectTarget( $oldRedir ); } - Hooks::run( 'ContentAlterParserOutput', array( $this, $title, $po ) ); + Hooks::run( 'ContentAlterParserOutput', [ $this, $title, $po ] ); return $po; }