git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

Commit f5128015 authored by Evan Prodromou's avatar Evan Prodromou

Use outputTo() instead of asString() for including sub-elements

parent 1188d5ba
......@@ -440,7 +440,7 @@ class Activity
}
foreach ($this->categories as $cat) {
$xs->raw($cat->asString());
$cat->outputTo($xs);
}
// can be either URLs or enclosure objects
......
......@@ -570,7 +570,7 @@ class ActivityObject
}
if (!empty($this->poco)) {
$xo->raw($this->poco->asString());
$this->poco->outputTo($xo);
}
foreach ($this->extra as $el) {
......
......@@ -59,6 +59,13 @@ class AtomCategory
}
function asString()
{
$xs = new XMLStringer();
$this->outputTo($xs);
return $xs->getString();
}
function outputTo($xo)
{
$attribs = array();
if ($this->term !== null) {
......@@ -70,8 +77,6 @@ class AtomCategory
if ($this->label !== null) {
$attribs['label'] = $this->label;
}
$xs = new XMLStringer();
$xs->element('category', $attribs);
return $xs->getString();
$xo->element('category', $attribs);
}
}
......@@ -211,30 +211,34 @@ class PoCo
function asString()
{
$xs = new XMLStringer(true);
$xs->element(
$this->outputTo($xs);
return $xs->getString();
}
function outputTo($xo)
{
$xo->element(
'poco:preferredUsername',
null,
$this->preferredUsername
);
$xs->element(
$xo->element(
'poco:displayName',
null,
$this->displayName
);
if (!empty($this->note)) {
$xs->element('poco:note', null, common_xml_safe_str($this->note));
$xo->element('poco:note', null, common_xml_safe_str($this->note));
}
if (!empty($this->address)) {
$xs->raw($this->address->asString());
$this->address->outputTo($xo);
}
foreach ($this->urls as $url) {
$xs->raw($url->asString());
$url->outputTo($xo);
}
return $xs->getString();
}
}
......@@ -42,15 +42,18 @@ class PoCoAddress
// @todo Other address fields
function asString()
{
$xs = new XMLStringer(true);
$this->outputTo($xs);
return $xs->getString();
}
function outputTo($xo)
{
if (!empty($this->formatted)) {
$xs = new XMLStringer(true);
$xs->elementStart('poco:address');
$xs->element('poco:formatted', null, common_xml_safe_str($this->formatted));
$xs->elementEnd('poco:address');
return $xs->getString();
$xo->elementStart('poco:address');
$xo->element('poco:formatted', null, common_xml_safe_str($this->formatted));
$xo->elementEnd('poco:address');
}
return null;
}
}
......@@ -53,13 +53,18 @@ class PoCoURL
function asString()
{
$xs = new XMLStringer(true);
$xs->elementStart('poco:urls');
$xs->element('poco:type', null, $this->type);
$xs->element('poco:value', null, $this->value);
$this->outputTo($xs);
return $xs->getString();
}
function outputTo($xo)
{
$xo->elementStart('poco:urls');
$xo->element('poco:type', null, $this->type);
$xo->element('poco:value', null, $this->value);
if (!empty($this->primary)) {
$xs->element('poco:primary', null, 'true');
$xo->element('poco:primary', null, 'true');
}
$xs->elementEnd('poco:urls');
return $xs->getString();
$xo->elementEnd('poco:urls');
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment