return null;
}
- function fromProfile($profile)
+ static function fromProfile(Profile $profile)
{
- if (empty($profile)) {
- return null;
- }
-
$poco = new PoCo();
$poco->preferredUsername = $profile->nickname;
return $poco;
}
- function fromGroup($group)
+ static function fromGroup(User_group $group)
{
- if (empty($group)) {
- return null;
- }
-
$poco = new PoCo();
$poco->preferredUsername = $group->nickname;
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();
+ /**
+ * Output a Portable Contact as an array suitable for serializing
+ * as JSON
+ *
+ * @return $array the PoCo array
+ */
+
+ function asArray()
+ {
+ $poco = array();
+
+ $poco['preferredUsername'] = $this->preferredUsername;
+ $poco['displayName'] = $this->displayName;
+
+ if (!empty($this->note)) {
+ $poco['note'] = $this->note;
+ }
+
+ if (!empty($this->address)) {
+ $poco['addresses'] = $this->address->asArray();
+ }
+
+ if (!empty($this->urls)) {
+
+ $urls = array();
+
+ foreach ($this->urls as $url) {
+ $urls[] = $url->asArray();
+ }
+
+ $poco['urls'] = $urls;
+ }
+
+ return $poco;
}
+
}
+