X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Foexchange.php;h=173de0a6bc71f770401522588804087d2cc6daf2;hb=d989602c1c398e350d5b8c860b8788e08a0ab1b4;hp=10d48338a436aabe6ca335737158d77b6f9edea2;hpb=e64336b4d33b1a0bb21f96ee81a270606a0a2b47;p=friendica.git diff --git a/mod/oexchange.php b/mod/oexchange.php index 10d48338a4..173de0a6bc 100644 --- a/mod/oexchange.php +++ b/mod/oexchange.php @@ -1,24 +1,96 @@ . + * */ + use Friendica\App; -use Friendica\Core\L10n; -use Friendica\Core\Renderer; +use Friendica\Core\System; use Friendica\DI; +use Friendica\Module\Response; use Friendica\Module\Security\Login; -use Friendica\Util\Network; -use Friendica\Util\Strings; +use Friendica\Util\XML; + +function oexchange_init(App $a) +{ + if ((DI::args()->getArgc() <= 1) || (DI::args()->getArgv()[1] != 'xrd')) { + return; + } -function oexchange_init(App $a) { + $baseURL = DI::baseUrl()->get(); - if (($a->argc > 1) && ($a->argv[1] === 'xrd')) { - $tpl = Renderer::getMarkupTemplate('oexchange_xrd.tpl'); + $xml = null; - $o = Renderer::replaceMacros($tpl, ['$base' => DI::baseUrl()]); - echo $o; - exit(); - } + 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); + + System::httpExit($xml->saveXML(), Response::TYPE_XML, 'application/xrd+xml'); } function oexchange_content(App $a) { @@ -28,21 +100,16 @@ function oexchange_content(App $a) { return $o; } - if (($a->argc > 1) && $a->argv[1] === 'done') { - info(L10n::t('Post successful.') . EOL); + 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 = Network::fetchUrl(DI::baseUrl() . '/parse_url?url=' . $url . $title . $description . $tags); + $s = \Friendica\Content\Text\BBCode::embedURL($url, true, $title, $description, $tags); if (!strlen($s)) { return;