X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fxrd.php;h=43cb2ec73c8eac1868dc3bb2e01291fb50b813e5;hb=e1d36eae2da7171956fbd97005dfa059752de4da;hp=c8cffed9cde255fd14decbb0d68c2353fcfee748;hpb=3f3b38766f13d93bcc17264ad0aad0df90daf22a;p=quix0rs-gnu-social.git diff --git a/lib/xrd.php b/lib/xrd.php index c8cffed9cd..43cb2ec73c 100644 --- a/lib/xrd.php +++ b/lib/xrd.php @@ -26,7 +26,6 @@ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class XRD { const XML_NS = 'http://www.w3.org/2000/xmlns/'; @@ -61,12 +60,12 @@ class XRD if (!$ok) { // TRANS: Exception. - throw new Exception(_m('Invalid XML.')); + throw new Exception(_('Invalid XML.')); } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); if (!$xrd_element) { // TRANS: Exception. - throw new Exception(_m('Invalid XML, missing XRD root.')); + throw new Exception(_('Invalid XML, missing XRD root.')); } // Check for host-meta host @@ -130,14 +129,24 @@ class XRD foreach ($this->links as $link) { $titles = array(); + $properties = array(); if (isset($link['title'])) { $titles = $link['title']; unset($link['title']); } + if (isset($link['property'])) { + $properties = $link['property']; + unset($link['property']); + } $xs->elementStart('Link', $link); foreach ($titles as $title) { $xs->element('Title', null, $title); } + foreach ($properties as $property) { + $xs->element('Property', + array('type' => $property['type']), + $property['value']); + } $xs->elementEnd('Link'); } @@ -163,6 +172,13 @@ class XRD switch($node->tagName) { case 'Title': $link['title'][] = $node->nodeValue; + break; + case 'Property': + $link['property'][] = array('type' => $node->getAttribute('type'), + 'value' => $node->nodeValue); + break; + default: + common_log(LOG_NOTICE, "Unexpected tag name {$node->tagName} found in XRD file."); } } }