diff options
-rw-r--r-- | include/api.php | 10 | ||||
-rw-r--r-- | include/text.php | 11 | ||||
-rw-r--r-- | mod/poco.php | 14 | ||||
-rw-r--r-- | view/poco_entry_xml.tpl | 7 | ||||
-rw-r--r-- | view/poco_xml.tpl | 11 |
5 files changed, 26 insertions, 27 deletions
diff --git a/include/api.php b/include/api.php index 1334d8eae..d94cc2942 100644 --- a/include/api.php +++ b/include/api.php @@ -404,14 +404,6 @@ return $ret; } - /** - * apply xmlify() to all values of array $val, recursively - */ - function api_xmlify($val){ - if (is_bool($val)) return $val?"true":"false"; - if (is_array($val)) return array_map('api_xmlify', $val); - return xmlify((string) $val); - } /** * load api $templatename for $type and replace $data array @@ -424,7 +416,7 @@ case "atom": case "rss": case "xml": - $data = api_xmlify($data); + $data = array_xmlify($data); $tpl = get_markup_template("api_".$templatename."_".$type.".tpl"); $ret = replace_macros($tpl, $data); break; diff --git a/include/text.php b/include/text.php index e0f38a3a0..8ada179dc 100644 --- a/include/text.php +++ b/include/text.php @@ -1052,4 +1052,13 @@ function html2bb_video($s) { '[vimeo]$2[/vimeo]', $s); return $s; -}
\ No newline at end of file +} + +/** + * apply xmlify() to all values of array $val, recursively + */ +function array_xmlify($val){ + if (is_bool($val)) return $val?"true":"false"; + if (is_array($val)) return array_map('array_xmlify', $val); + return xmlify((string) $val); +} diff --git a/mod/poco.php b/mod/poco.php index d0e32816e..c354be863 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -1,6 +1,5 @@ <?php - function poco_init(&$a) { if($a->argc > 1) { @@ -67,9 +66,9 @@ function poco_init(&$a) { if(x($_GET,'updatedSince')) $ret['updateSince'] = 'false'; - $ret['startIndex'] = $startIndex; - $ret['itemsPerPage'] = $itemsPerPage; - $ret['totalResults'] = $totalResults; + $ret['startIndex'] = (string) $startIndex; + $ret['itemsPerPage'] = (string) $itemsPerPage; + $ret['totalResults'] = (string) $totalResults; $ret['entry'] = array(); @@ -82,8 +81,8 @@ function poco_init(&$a) { ); if((! x($_GET,'fields')) || ($_GET['fields'] === '@all')) - foreach($fields_ret as $f) - $f = true; + foreach($fields_ret as $k => $v) + $fields_ret[$k] = true; else { $fields_req = explode(',',$_GET['fields']); foreach($fields_req as $f) @@ -115,9 +114,8 @@ function poco_init(&$a) { if($format === 'xml') { header('Content-type: text/xml'); - echo replace_macros(get_markup_template('poco.xml',array('response' => $ret))); + echo replace_macros(get_markup_template('poco_xml.tpl',array_xmlify(array('$response' => $ret)))); http_status_exit(500); - } if($format === 'json') { header('Content-type: application/json'); diff --git a/view/poco_entry_xml.tpl b/view/poco_entry_xml.tpl new file mode 100644 index 000000000..71ca2d13e --- /dev/null +++ b/view/poco_entry_xml.tpl @@ -0,0 +1,7 @@ +<entry> +{{ if $entry.id }}<id>$entry.id</id>{{ endif }} +{{ if $entry.displayName }}<displayName>$entry.displayName</displayName>{{ endif }} +{{ if $entry.preferredName }}<preferredName>$entry.preferredName</preferredName>{{ endif }} +{{ if $entry.urls }}<urls><value>$entry.urls.value</value><type>$entry.urls.type</type></urls>{{ endif }} +{{ if $entry.photos }}<photos><value>$entry.photos.value</value><type><$entry.photos.type></type></photos>{{ endif }} +</entry> diff --git a/view/poco_xml.tpl b/view/poco_xml.tpl index 59b8e8a95..218c97c5c 100644 --- a/view/poco_xml.tpl +++ b/view/poco_xml.tpl @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <response> - {{ if $response.sorted }}<sorted>$response.sorted</sorted>{{ endif }} {{ if $response.filtered }}<filtered>$response.filtered</filtered>{{ endif }} {{ if $response.updatedSince }}<updatedSince>$response.updatedSince</updatedSince>{{ endif }} @@ -8,14 +7,8 @@ {{ if $response.itemsPerPage }}<itemsPerPage>$response.itemsPerPage</itemsPerPage>{{ endif }} {{ if $response.totalResults }}<totalResults>$response.totalResults</totalResults>{{ endif }} -{{ for $response.entry as $ent }} -<entry> -{{ if $ent.id }}<id>$ent.id</id>{{ endif }} -{{ if $ent.displayName }}<displayName>$ent.displayName</displayName>{{ endif }} -{{ if $ent.preferredName }}<preferredName>$ent.preferredName</preferredName>{{ endif }} -{{ if $ent.urls }}<urls><value>$ent.urls.value</value><type>$ent.urls.type</type></urls>{{ endif }} -{{ if $ent.photos }}<photos><value>$ent.photos.value</value><type><$ent.photos.type></type></photos>{{ endif }} -</entry> +{{ for $response.entry as $entry }} +{{ inc poco_entry_xml.tpl }}{{ endinc }} {{ endfor }} </response> |