From: Roan Kattouw Date: Sat, 23 Oct 2010 17:48:08 +0000 (+0000) Subject: Revert r70703 and followup r70715: broke &redirect for API edit with a fatal error X-Git-Tag: 1.31.0-rc.0~34349 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/%7B%7B%20url_for%28%27admin_users%27%29%20%7D%7D?a=commitdiff_plain;h=d1c9916e9c8a6096b337ee7d5cbbb15cb6ac0868;p=lhc%2Fweb%2Fwiklou.git Revert r70703 and followup r70715: broke &redirect for API edit with a fatal error --- diff --git a/includes/api/ApiEditPage.php b/includes/api/ApiEditPage.php index 83d9c16ab6..fac787aae8 100644 --- a/includes/api/ApiEditPage.php +++ b/includes/api/ApiEditPage.php @@ -57,16 +57,36 @@ class ApiEditPage extends ApiBase { if ( !$titleObj || $titleObj->isExternal() ) { $this->dieUsageMsg( array( 'invalidtitle', $params['title'] ) ); } + + if( $params['redirect'] ) { + if( $titleObj->isRedirect() ) { + $oldTitle = $titleObj; + + $titles = Title::newFromRedirectArray( Revision::newFromTitle( $oldTitle )->getText( Revision::FOR_THIS_USER ) ); + //array_shift( $titles ); + + $this->getResult()->addValue( null, 'foo', $titles ); + + + $redirValues = array(); + foreach ( $titles as $id => $newTitle ) { + + if( !isset( $titles[ $id - 1 ] ) ) { + $titles[ $id - 1 ] = $oldTitle; + } + + $redirValues[] = array( + 'from' => $titles[ $id - 1 ]->getPrefixedText(), + 'to' => $newTitle->getPrefixedText() + ); + + $titleObj = $newTitle; + } + + $this->getResult()->setIndexedTagName( $redirValues, 'r' ); + $this->getResult()->addValue( null, 'redirects', $redirValues ); - if( $params['redirect'] && $titleObj->isRedirect() ) { - $pageSet = new ApiPageSet( $this->getQuery(), true ); // Or true, true to also do variant conversion of titles - $pageSet->populateFromTitles( array( $titleObj ) ); - foreach ( $pageSet->getRedirectTitles() as $from => $to ) { - $redirsValues[] = array( 'from' => $from, 'to' => $to ); } - - $this->getResult()->setIndexedTagName( $redirValues, 'r' ); - $this->getResult()->addValue( null, 'redirects', $redirValues ); } // Some functions depend on $wgTitle == $ep->mTitle