]> git.mxchange.org Git - friendica.git/commitdiff
Move mod/opensearch to src/Module/OpenSearch
authorPhilipp Holzer <admin+github@philipp.info>
Sat, 18 May 2019 15:43:58 +0000 (17:43 +0200)
committerPhilipp Holzer <admin+github@philipp.info>
Sat, 18 May 2019 15:43:58 +0000 (17:43 +0200)
mod/opensearch.php [deleted file]
src/App/Router.php
src/Module/OpenSearch.php [new file with mode: 0644]
view/templates/opensearch.tpl [deleted file]

diff --git a/mod/opensearch.php b/mod/opensearch.php
deleted file mode 100644 (file)
index 0744157..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-use Friendica\App;
-use Friendica\Core\Renderer;
-
-function opensearch_content(App $a) {
-
-       $tpl = Renderer::getMarkupTemplate('opensearch.tpl');
-
-       header("Content-type: application/opensearchdescription+xml");
-
-       $o = Renderer::replaceMacros($tpl, [
-               '$nodename' => $a->getHostName(),
-       ]);
-
-       echo $o;
-
-       exit();
-}
index cd59c3dd905ed28b40dbfbc7a9c89e1aee7f6457..e37565b79ccee8e2c548d1dd7399b608c4be6013 100644 (file)
@@ -172,6 +172,7 @@ class Router
                });
                $this->routeCollector->addRoute(['GET'],         '/outbox/{owner}',      Module\Outbox::class);
                $this->routeCollector->addRoute(['GET'],         '/owa',                 Module\Owa::class);
+               $this->routeCollector->addRoute(['GET'],         '/opensearch',          Module\OpenSearch::class);
                $this->routeCollector->addGroup('/photo', function (RouteCollector $collector) {
                        $collector->addRoute(['GET'], '/{name}',                             Module\Photo::class);
                        $collector->addRoute(['GET'], '/{type}/{name}',                      Module\Photo::class);
diff --git a/src/Module/OpenSearch.php b/src/Module/OpenSearch.php
new file mode 100644 (file)
index 0000000..ff005bd
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+
+namespace Friendica\Module;
+
+use DOMDocument;
+use DOMElement;
+use Friendica\BaseModule;
+use Friendica\Util\XML;
+
+/**
+ * Prints the opensearch description document
+ * @see https://github.com/dewitt/opensearch/blob/master/opensearch-1-1-draft-6.md#opensearch-description-document
+ */
+class OpenSearch extends BaseModule
+{
+       /**
+        * @throws \Exception
+        */
+       public static function rawContent()
+       {
+               header('Content-type: application/opensearchdescription+xml');
+
+               $hostname = self::getApp()->getHostName();
+               $baseUrl  = self::getApp()->getBaseURL();
+
+               /** @var DOMDocument $xml */
+               $xml = null;
+
+               XML::fromArray([
+                       'OpenSearchDescription' => [
+                               '@attributes' => [
+                                       'xmlns' => 'http://a9.com/-/spec/opensearch/1.1',
+                               ],
+                               'ShortName'   => "Friendica $hostname",
+                               'Description' => "Search in Friendica $hostname",
+                               'Contact'     => 'https://github.com/friendica/friendica/issues',
+                       ],
+               ], $xml);
+
+               /** @var DOMElement $parent */
+               $parent = $xml->getElementsByTagName('OpenSearchDescription')[0];
+
+               XML::addElement($xml, $parent, 'Image',
+                       "$baseUrl/images/friendica-16.png", [
+                               'height' => 16,
+                               'width'  => 16,
+                               'type'   => 'image/png',
+                       ]);
+
+               XML::addElement($xml, $parent, 'Image',
+                       "$baseUrl/images/friendica-64.png", [
+                               'height' => 64,
+                               'width'  => 64,
+                               'type'   => 'image/png',
+                       ]);
+
+               XML::addElement($xml, $parent, 'Url', '', [
+                       'type'     => 'text/html',
+                       'template' => "$baseUrl/search?search={searchTerms}",
+               ]);
+
+               XML::addElement($xml, $parent, 'Url', '', [
+                       'type'     => 'application/opensearchdescription+xml',
+                       'rel'      => 'self',
+                       'template' => "$baseUrl/opensearch",
+               ]);
+
+               echo $xml->saveXML();
+
+               exit();
+       }
+}
diff --git a/view/templates/opensearch.tpl b/view/templates/opensearch.tpl
deleted file mode 100644 (file)
index 6efee25..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-       <ShortName>Friendica@{{$nodename}}</ShortName>
-       <Description>Search in Friendica@{{$nodename}}</Description>
-       <Contact>http://bugs.friendica.com/</Contact>
-       <Image height="16" width="16" type="image/png">{{$baseurl}}/images/friendica-16.png</Image>
-       <Image height="64" width="64" type="image/png">{{$baseurl}}/images/friendica-64.png</Image>
-       <Url type="text/html" 
-        template="{{$baseurl}}/search?search={searchTerms}"/>
-       <Url type="application/opensearchdescription+xml"
-       rel="self"
-       template="{{$baseurl}}/opensearch" />        
-</OpenSearchDescription>
\ No newline at end of file