Merge "Web installer: correctly show note for I4ecd0659"
[lhc/web/wiklou.git] / includes / api / ApiPurge.php
index 134f4a0..e2eae61 100644 (file)
@@ -42,15 +42,15 @@ class ApiPurge extends ApiBase {
         */
        private static function addValues( array &$result, $values, $flag = null, $name = null ) {
                foreach ( $values as $val ) {
-                       if( $val instanceof Title ) {
+                       if ( $val instanceof Title ) {
                                $v = array();
                                ApiQueryBase::addTitleInfo( $v, $val );
-                       } elseif( $name !== null ) {
+                       } elseif ( $name !== null ) {
                                $v = array( $name => $val );
                        } else {
                                $v = $val;
                        }
-                       if( $flag !== null ) {
+                       if ( $flag !== null ) {
                                $v[$flag] = '';
                        }
                        $result[] = $v;
@@ -64,6 +64,7 @@ class ApiPurge extends ApiBase {
                $params = $this->extractRequestParams();
 
                $forceLinkUpdate = $params['forcelinkupdate'];
+               $forceRecursiveLinkUpdate = $params['forcerecursivelinkupdate'];
                $pageSet = $this->getPageSet();
                $pageSet->execute();
 
@@ -82,7 +83,7 @@ class ApiPurge extends ApiBase {
                        $page->doPurge(); // Directly purge and skip the UI part of purge().
                        $r['purged'] = '';
 
-                       if ( $forceLinkUpdate ) {
+                       if ( $forceLinkUpdate || $forceRecursiveLinkUpdate ) {
                                if ( !$this->getUser()->pingLimiter() ) {
                                        global $wgEnableParserCache;
 
@@ -93,7 +94,8 @@ class ApiPurge extends ApiBase {
                                        $p_result = $content->getParserOutput( $title, $page->getLatest(), $popts, $wgEnableParserCache );
 
                                        # Update the links tables
-                                       $updates = $content->getSecondaryDataUpdates( $title, null, true, $p_result );
+                                       $updates = $content->getSecondaryDataUpdates(
+                                               $title, null, $forceRecursiveLinkUpdate, $p_result );
                                        DataUpdate::runUpdates( $updates );
 
                                        $r['linkupdate'] = '';
@@ -150,7 +152,10 @@ class ApiPurge extends ApiBase {
        }
 
        public function getAllowedParams( $flags = 0 ) {
-               $result = array( 'forcelinkupdate' => false );
+               $result = array(
+                       'forcelinkupdate' => false,
+                       'forcerecursivelinkupdate' => false
+               );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
                }
@@ -158,8 +163,12 @@ class ApiPurge extends ApiBase {
        }
 
        public function getParamDescription() {
-               return $this->getPageSet()->getParamDescription()
-                       + array( 'forcelinkupdate' => 'Update the links tables' );
+               return $this->getPageSet()->getFinalParamDescription()
+                       + array(
+                               'forcelinkupdate' => 'Update the links tables',
+                               'forcerecursivelinkupdate' => 'Update the links table, and update ' .
+                                       'the links tables for any page that uses this page as a template',
+                       );
        }
 
        public function getResultProperties() {
@@ -204,7 +213,7 @@ class ApiPurge extends ApiBase {
        public function getPossibleErrors() {
                return array_merge(
                        parent::getPossibleErrors(),
-                       $this->getPageSet()->getPossibleErrors()
+                       $this->getPageSet()->getFinalPossibleErrors()
                );
        }