+
+ switch ($apidata['content-type']) {
+ case 'xml':
+ $this->init_document('xml');
+ $this->elementStart('config');
+ // XXX: check that all sections and settings are legal XML elements
+ foreach ($keys as $section => $settings) {
+ $this->elementStart($section);
+ foreach ($settings as $setting) {
+ $value = common_config($section, $setting);
+ if (is_array($value)) {
+ $value = implode(',', $value);
+ } else if ($value === false) {
+ $value = 'false';
+ } else if ($value === true) {
+ $value = 'true';
+ }
+ $this->element($setting, null, $value);
+ }
+ $this->elementEnd($section);
+ }
+ $this->elementEnd('config');
+ $this->end_document('xml');
+ break;
+ case 'json':
+ $result = array();
+ foreach ($keys as $section => $settings) {
+ $result[$section] = array();
+ foreach ($settings as $setting) {
+ $result[$section][$setting] = common_config($section, $setting);
+ }
+ }
+ $this->init_document('json');
+ $this->show_json_objects($result);
+ $this->end_document('json');
+ break;
+ default:
+ $this->clientError(_('API method not found!'), $code=404);
+ }