X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Foexchange.php;h=dd3809bc7d795889daa5ea8f2984ce64bb2f937f;hb=a98d3213767392dcce399188f65b5f976caf98e6;hp=f68fe6f2d2dbd09bf25f0a4ca98bb1a8282f1334;hpb=aa0b485f3dca72c5448076e913fa54d948cd7731;p=friendica.git diff --git a/mod/oexchange.php b/mod/oexchange.php index f68fe6f2d2..dd3809bc7d 100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php @@ -1,6 +1,6 @@ getArgc() <= 1) || (DI::args()->getArgv()[1] != 'xrd')) { + return; + } - if (($a->argc > 1) && ($a->argv[1] === 'xrd')) { - $tpl = Renderer::getMarkupTemplate('oexchange_xrd.tpl'); + $baseURL = DI::baseUrl()->get(); - $o = Renderer::replaceMacros($tpl, ['$base' => DI::baseUrl()]); - echo $o; - exit(); - } -} + $xml = null; + + XML::fromArray([ + 'XRD' => [ + '@attributes' => [ + 'xmlns' => 'http://docs.oasis-open.org/ns/xri/xrd-1.0', + ], + 'Subject' => $baseURL, + '1:Property' => [ + '@attributes' => [ + 'type' => 'http://www.oexchange.org/spec/0.8/prop/vendor', + ], + 'Friendica' + ], + '2:Property' => [ + '@attributes' => [ + 'type' => 'http://www.oexchange.org/spec/0.8/prop/title', + ], + 'Friendica Social Network' + ], + '3:Property' => [ + '@attributes' => [ + 'type' => 'http://www.oexchange.org/spec/0.8/prop/name', + ], + 'Friendica' + ], + '4:Property' => [ + '@attributes' => [ + 'type' => 'http://www.oexchange.org/spec/0.8/prop/prompt', + ], + 'Send to Friendica' + ], + '1:link' => [ + '@attributes' => [ + 'rel' => 'icon', + 'type' => 'image/png', + 'href' => $baseURL . '/images/friendica-16.png' + ] + ], + '2:link' => [ + '@attributes' => [ + 'rel' => 'icon32', + 'type' => 'image/png', + 'href' => $baseURL . '/images/friendica-32.png' + ] + ], + '3:link' => [ + '@attributes' => [ + 'rel' => 'http://www.oexchange.org/spec/0.8/rel/offer', + 'type' => 'text/html', + 'href' => $baseURL . '/oexchange' + ] + ], + ], + ], $xml); -function oexchange_content(App $a) { + System::httpExit($xml->saveXML(), Response::TYPE_XML, 'application/xrd+xml'); +} - if (!local_user()) { +function oexchange_content(App $a) +{ + if (!DI::userSession()->getLocalUserId()) { $o = Login::form(); return $o; } - if (($a->argc > 1) && $a->argv[1] === 'done') { + if ((DI::args()->getArgc() > 1) && DI::args()->getArgv()[1] === 'done') { return; } - $url = ((!empty($_REQUEST['url'])) - ? urlencode(Strings::escapeTags(trim($_REQUEST['url']))) : ''); - $title = ((!empty($_REQUEST['title'])) - ? '&title=' . urlencode(Strings::escapeTags(trim($_REQUEST['title']))) : ''); - $description = ((!empty($_REQUEST['description'])) - ? '&description=' . urlencode(Strings::escapeTags(trim($_REQUEST['description']))) : ''); - $tags = ((!empty($_REQUEST['tags'])) - ? '&tags=' . urlencode(Strings::escapeTags(trim($_REQUEST['tags']))) : ''); + $url = !empty($_REQUEST['url']) ? trim($_REQUEST['url']) : ''; + $title = !empty($_REQUEST['title']) ? trim($_REQUEST['title']) : ''; + $description = !empty($_REQUEST['description']) ? trim($_REQUEST['description']) : ''; + $tags = !empty($_REQUEST['tags']) ? trim($_REQUEST['tags']) : ''; - $s = DI::httpRequest()->fetch(DI::baseUrl() . '/parse_url?url=' . $url . $title . $description . $tags); + $s = BBCode::embedURL($url, true, $title, $description, $tags); if (!strlen($s)) { return; @@ -64,11 +119,11 @@ function oexchange_content(App $a) { $post = []; - $post['profile_uid'] = local_user(); + $post['profile_uid'] = DI::userSession()->getLocalUserId(); $post['return'] = '/oexchange/done'; - $post['body'] = Friendica\Content\Text\HTML::toBBCode($s); + $post['body'] = HTML::toBBCode($s); $_REQUEST = $post; - require_once('mod/item.php'); + require_once 'mod/item.php'; item_post($a); }