From 5c4406d9eadbd64cdba92e68d631586406f10bea Mon Sep 17 00:00:00 2001 From: umherirrender Date: Sat, 5 May 2012 20:08:58 +0200 Subject: [PATCH] (bug 28814) add properties to output of action=parse Change-Id: I27cf2daaf6f34596bc34aac230601d5688a0066f --- RELEASE-NOTES-1.20 | 1 + includes/api/ApiParse.php | 24 ++++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES-1.20 b/RELEASE-NOTES-1.20 index 5743994001..18e6274fce 100644 --- a/RELEASE-NOTES-1.20 +++ b/RELEASE-NOTES-1.20 @@ -111,6 +111,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki. * (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error * (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid * (bug 34927) Output media_type for list=filearchive +* (bug 28814) add properties to output of action=parse === Languages updated in 1.20 === diff --git a/includes/api/ApiParse.php b/includes/api/ApiParse.php index 963fd85bd9..dbcd43c12f 100644 --- a/includes/api/ApiParse.php +++ b/includes/api/ApiParse.php @@ -285,6 +285,9 @@ class ApiParse extends ApiBase { $result->setContent( $result_array['psttext'], $this->pstText ); } } + if ( isset( $prop['properties'] ) ) { + $result_array['properties'] = $this->formatProperties( $p_result->getProperties() ); + } $result_mapping = array( 'redirects' => 'r', @@ -297,6 +300,7 @@ class ApiParse extends ApiBase { 'iwlinks' => 'iw', 'sections' => 's', 'headitems' => 'hi', + 'properties' => 'pp', ); $this->setIndexedTagNames( $result_array, $result_mapping ); $result->addValue( null, $this->getModuleName(), $result_array ); @@ -464,6 +468,17 @@ class ApiParse extends ApiBase { return $result; } + private function formatProperties( $properties ) { + $result = array(); + foreach ( $properties as $name => $value ) { + $entry = array(); + $entry['name'] = $name; + $this->getResult()->setContent( $entry, $value ); + $result[] = $entry; + } + return $result; + } + private function formatCss( $css ) { $result = array(); foreach ( $css as $file => $link ) { @@ -499,7 +514,7 @@ class ApiParse extends ApiBase { ApiBase::PARAM_TYPE => 'integer', ), 'prop' => array( - ApiBase::PARAM_DFLT => 'text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle', + ApiBase::PARAM_DFLT => 'text|langlinks|categories|links|templates|images|externallinks|sections|revid|displaytitle|iwlinks|properties', ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => array( 'text', @@ -518,6 +533,7 @@ class ApiParse extends ApiBase { 'headhtml', 'iwlinks', 'wikitext', + 'properties', ) ), 'pst' => false, @@ -556,6 +572,7 @@ class ApiParse extends ApiBase { ' headhtml - Gives parsed of the page', ' iwlinks - Gives interwiki links in the parsed wikitext', ' wikitext - Gives the original wikitext that was parsed', + ' properties - Gives various properties defined in the parsed wikitext', ), 'pst' => array( 'Do a pre-save transform on the input before parsing it', @@ -572,7 +589,10 @@ class ApiParse extends ApiBase { } public function getDescription() { - return 'Parses wikitext and returns parser output'; + return array( + 'Parses wikitext and returns parser output', + 'See the various prop-Modules of action=query to get information from the current version of a page', + ); } public function getPossibleErrors() { -- 2.20.1