API: (bug 11405) Expand templates implementation in the API
authorRoan Kattouw <catrope@users.mediawiki.org>
Tue, 25 Sep 2007 18:36:25 +0000 (18:36 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Tue, 25 Sep 2007 18:36:25 +0000 (18:36 +0000)
Modified patch by Bryan Tongh Minh

RELEASE-NOTES
includes/api/ApiQueryRevisions.php

index a2244e8..7437a0f 100644 (file)
@@ -79,6 +79,7 @@ Full API documentation is available at http://www.mediawiki.org/wiki/API
 * (bug 11308) Allow the API to output the image metadata
 * (bug 11296) Temporary fix for escaping of ampersands inside links in pretty-printed
   help document.
+* (bug 11405) Expand templates implementation in the API
 
 === Languages updated in 1.12 ===
 
index dc63c20..b8af8ca 100644 (file)
@@ -105,7 +105,10 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $this->addFields('old_id');
                        $this->addFields('old_text');
                        $this->addFields('old_flags');
+
                        $this->fld_content = true;
+                       
+                       $this->expandTemplates = $expandtemplates;
                }
 
                $userMax = ($this->fld_content ? 50 : 500);
@@ -245,7 +248,12 @@ class ApiQueryRevisions extends ApiQueryBase {
                }
                
                if ($this->fld_content) {
-                       ApiResult :: setContent($vals, Revision :: getRevisionText($row));
+                       $text = Revision :: getRevisionText($row);
+                       if ($this->expandTemplates) {
+                               global $wgParser;
+                               $text = $wgParser->preprocess( $text, Title::newFromID($row->rev_page), new ParserOptions() );
+                       }
+                       ApiResult :: setContent($vals, $text);
                }
                
                return $vals;
@@ -296,7 +304,9 @@ class ApiQueryRevisions extends ApiQueryBase {
                        ),
                        'excludeuser' => array(
                                ApiBase :: PARAM_TYPE => 'user'
-                       )
+                       ),
+                       
+                       'expandtemplates' => false,
                );
        }
 
@@ -311,6 +321,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        'dir' => 'direction of enumeration - towards "newer" or "older" revisions (enum)',
                        'user' => 'only include revisions made by user',
                        'excludeuser' => 'exclude revisions made by user',
+                       'expandtemplates' => 'expand templates in revision content'
                );
        }