hmmm - why won't poco xml work
This commit is contained in:
parent
31502207bd
commit
abe96155b4
5 changed files with 26 additions and 27 deletions
|
@ -404,14 +404,6 @@
|
||||||
return $ret;
|
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
|
* load api $templatename for $type and replace $data array
|
||||||
|
@ -424,7 +416,7 @@
|
||||||
case "atom":
|
case "atom":
|
||||||
case "rss":
|
case "rss":
|
||||||
case "xml":
|
case "xml":
|
||||||
$data = api_xmlify($data);
|
$data = array_xmlify($data);
|
||||||
$tpl = get_markup_template("api_".$templatename."_".$type.".tpl");
|
$tpl = get_markup_template("api_".$templatename."_".$type.".tpl");
|
||||||
$ret = replace_macros($tpl, $data);
|
$ret = replace_macros($tpl, $data);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1052,4 +1052,13 @@ function html2bb_video($s) {
|
||||||
'[vimeo]$2[/vimeo]', $s);
|
'[vimeo]$2[/vimeo]', $s);
|
||||||
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
|
|
14
mod/poco.php
14
mod/poco.php
|
@ -1,6 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
function poco_init(&$a) {
|
function poco_init(&$a) {
|
||||||
|
|
||||||
if($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
|
@ -67,9 +66,9 @@ function poco_init(&$a) {
|
||||||
if(x($_GET,'updatedSince'))
|
if(x($_GET,'updatedSince'))
|
||||||
$ret['updateSince'] = 'false';
|
$ret['updateSince'] = 'false';
|
||||||
|
|
||||||
$ret['startIndex'] = $startIndex;
|
$ret['startIndex'] = (string) $startIndex;
|
||||||
$ret['itemsPerPage'] = $itemsPerPage;
|
$ret['itemsPerPage'] = (string) $itemsPerPage;
|
||||||
$ret['totalResults'] = $totalResults;
|
$ret['totalResults'] = (string) $totalResults;
|
||||||
$ret['entry'] = array();
|
$ret['entry'] = array();
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,8 +81,8 @@ function poco_init(&$a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
if((! x($_GET,'fields')) || ($_GET['fields'] === '@all'))
|
if((! x($_GET,'fields')) || ($_GET['fields'] === '@all'))
|
||||||
foreach($fields_ret as $f)
|
foreach($fields_ret as $k => $v)
|
||||||
$f = true;
|
$fields_ret[$k] = true;
|
||||||
else {
|
else {
|
||||||
$fields_req = explode(',',$_GET['fields']);
|
$fields_req = explode(',',$_GET['fields']);
|
||||||
foreach($fields_req as $f)
|
foreach($fields_req as $f)
|
||||||
|
@ -115,9 +114,8 @@ function poco_init(&$a) {
|
||||||
|
|
||||||
if($format === 'xml') {
|
if($format === 'xml') {
|
||||||
header('Content-type: text/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);
|
http_status_exit(500);
|
||||||
|
|
||||||
}
|
}
|
||||||
if($format === 'json') {
|
if($format === 'json') {
|
||||||
header('Content-type: application/json');
|
header('Content-type: application/json');
|
||||||
|
|
7
view/poco_entry_xml.tpl
Normal file
7
view/poco_entry_xml.tpl
Normal file
|
@ -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>
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<response>
|
<response>
|
||||||
|
|
||||||
{{ if $response.sorted }}<sorted>$response.sorted</sorted>{{ endif }}
|
{{ if $response.sorted }}<sorted>$response.sorted</sorted>{{ endif }}
|
||||||
{{ if $response.filtered }}<filtered>$response.filtered</filtered>{{ endif }}
|
{{ if $response.filtered }}<filtered>$response.filtered</filtered>{{ endif }}
|
||||||
{{ if $response.updatedSince }}<updatedSince>$response.updatedSince</updatedSince>{{ endif }}
|
{{ if $response.updatedSince }}<updatedSince>$response.updatedSince</updatedSince>{{ endif }}
|
||||||
|
@ -8,14 +7,8 @@
|
||||||
{{ if $response.itemsPerPage }}<itemsPerPage>$response.itemsPerPage</itemsPerPage>{{ endif }}
|
{{ if $response.itemsPerPage }}<itemsPerPage>$response.itemsPerPage</itemsPerPage>{{ endif }}
|
||||||
{{ if $response.totalResults }}<totalResults>$response.totalResults</totalResults>{{ endif }}
|
{{ if $response.totalResults }}<totalResults>$response.totalResults</totalResults>{{ endif }}
|
||||||
|
|
||||||
{{ for $response.entry as $ent }}
|
{{ for $response.entry as $entry }}
|
||||||
<entry>
|
{{ inc poco_entry_xml.tpl }}{{ endinc }}
|
||||||
{{ 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>
|
|
||||||
{{ endfor }}
|
{{ endfor }}
|
||||||
|
|
||||||
</response>
|
</response>
|
||||||
|
|
Loading…
Reference in a new issue