b35aed2f2874821e671044f1703692379b9e030d
5 * Created on Sep 4, 2006
7 * API for MediaWiki 1.8+
9 * Copyright (C) 2006 Yuri Astrakhan <FirstnameLastname@gmail.com>
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 * http://www.gnu.org/copyleft/gpl.html
27 if (!defined('MEDIAWIKI')) {
28 // Eclipse helper - will be ignored in production
29 require_once ("ApiBase.php");
32 class ApiResult
extends ApiBase
{
39 public function __construct($main) {
40 parent
:: __construct($main);
44 public function Reset() {
45 $this->mData
= array ();
52 function addMessage($mainSection, $subSection, $value, $multiitem = false, $preserveXmlSpacing = false) {
53 if (!array_key_exists($mainSection, $this->mData
)) {
54 $this->mData
[$mainSection] = array ();
56 if ($subSection !== null) {
57 if (!array_key_exists($subSection, $this->mData
[$mainSection])) {
58 $this->mData
[$mainSection][$subSection] = array ();
60 $element = & $this->mData
[$mainSection][$subSection];
62 $element = & $this->mData
[$mainSection];
65 $element['_element'] = $multiitem;
68 if (is_array($value)) {
69 $element = array_merge($element, $value);
71 if (array_key_exists('*', $element)) {
72 $element['*'] .= $value;
74 $element['*'] = $value;
76 if ($preserveXmlSpacing) {
77 $element['xml:space'] = 'preserve';
84 * Recursivelly removes any elements from the array that begin with an '_'.
85 * The content element '*' is the only special element that is left.
86 * Use this method when the entire data object gets sent to the user.
88 public function SanitizeData() {
89 ApiResult
:: SanitizeDataInt($this->mData
);
92 private static function SanitizeDataInt(& $data) {
93 foreach ($data as $key => & $value) {
94 if ($key[0] === '_') {
97 elseif ($key === '*' && $value === '') {
100 elseif (is_array($value)) {
101 ApiResult
:: SanitizeDataInt($value);
106 public function execute() {
107 $this->dieDebug("execute() is not supported on Result object");