X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Foexchange.php;h=dd3809bc7d795889daa5ea8f2984ce64bb2f937f;hb=a98d3213767392dcce399188f65b5f976caf98e6;hp=e279bfff29442e88f1389c0ec0f97673d329c731;hpb=989ac2fda800b826addbf70eff4feccde1c352ba;p=friendica.git diff --git a/mod/oexchange.php b/mod/oexchange.php index e279bfff29..dd3809bc7d 100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php @@ -20,25 +20,84 @@ */ use Friendica\App; -use Friendica\Core\Renderer; +use Friendica\Content\Text\BBCode; +use Friendica\Content\Text\HTML; use Friendica\Core\System; use Friendica\DI; use Friendica\Module\Response; use Friendica\Module\Security\Login; +use Friendica\Util\XML; -function oexchange_init(App $a) { +function oexchange_init(App $a) +{ + if ((DI::args()->getArgc() <= 1) || (DI::args()->getArgv()[1] != 'xrd')) { + return; + } - if ((DI::args()->getArgc() > 1) && (DI::args()->getArgv()[1] === 'xrd')) { - $tpl = Renderer::getMarkupTemplate('oexchange_xrd.tpl'); + $baseURL = DI::baseUrl()->get(); - $o = Renderer::replaceMacros($tpl, ['$base' => DI::baseUrl()]); - System::httpExit($o, Response::TYPE_XML); - } -} + $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; } @@ -52,7 +111,7 @@ function oexchange_content(App $a) { $description = !empty($_REQUEST['description']) ? trim($_REQUEST['description']) : ''; $tags = !empty($_REQUEST['tags']) ? trim($_REQUEST['tags']) : ''; - $s = \Friendica\Content\Text\BBCode::embedURL($url, true, $title, $description, $tags); + $s = BBCode::embedURL($url, true, $title, $description, $tags); if (!strlen($s)) { return; @@ -60,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); }