* @link http://status.net/
*/
-if (!defined('STATUSNET')) {
- exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
require_once(INSTALLDIR.'/lib/activitystreamjsondocument.php');
if (empty($this->id) && !empty($this->link)) { // fallback if there's no ID
$this->id = $this->link;
}
+
+ $els = $element->childNodes;
+ $out = array();
+
+ for ($i = 0; $i < $els->length; $i++) {
+ $link = $els->item($i);
+ if ($link->localName == ActivityUtils::LINK && $link->namespaceURI == ActivityUtils::ATOM) {
+ $attrs = array();
+ foreach ($link->attributes as $attrName=>$attrNode) {
+ $attrs[$attrName] = $attrNode->nodeValue;
+ }
+ $this->extra[] = [$link->localName,
+ $attrs,
+ $link->nodeValue];
+ }
+ }
}
// @todo FIXME: rationalize with Activity::_fromRssItem()
$url = null;
// each extra element is array('tagname', array('attr'=>'val', ...), 'content')
foreach ($actobj->extra as $extra) {
- if ($extra[1]['rel'] !== 'related') {
+ if ($extra[0] !== ActivityUtils::LINK || $extra[1][ActivityUtils::REL] !== 'related') {
continue;
}
- if ($url===null && strlen($extra[1]['href'])>0) {
- $url = $extra[1]['href'];
+ if ($url===null && strlen($extra[1][ActivityUtils::HREF])>0) {
+ $url = $extra[1][ActivityUtils::HREF];
} elseif ($url !== null) {
// TRANS: Client exception thrown when a bookmark is formatted incorrectly.
- throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got %1$d.'), count($relLinkEls)));
+ throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got more than that.')));
}
}
if (is_null($url)) {
// TRANS: Client exception thrown when a bookmark is formatted incorrectly.
- throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got %1$d.'), count($relLinkEls)));
+ throw new ClientException(sprintf(_m('Expected exactly 1 link rel=related in a Bookmark, got 0.')));
}
if (!strlen($actobj->title)) {