summaryrefslogtreecommitdiff
path: root/modules_v4
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-03-05 10:00:10 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-03-05 10:00:10 +0000
commit0cfd6963ac65bd7fe86283b801b4f23d665c6004 (patch)
tree25ced72ed3c1810d90eea52b59d7cdeb289198a7 /modules_v4
parentbeefaa8eef44e825afb9bbf98fdf4b206fae8102 (diff)
downloadwebtrees-0cfd6963ac65bd7fe86283b801b4f23d665c6004.tar.gz
webtrees-0cfd6963ac65bd7fe86283b801b4f23d665c6004.tar.bz2
webtrees-0cfd6963ac65bd7fe86283b801b4f23d665c6004.zip
Custom module examples
Diffstat (limited to 'modules_v4')
-rw-r--r--modules_v4/example-middleware.disable/module.php52
-rw-r--r--modules_v4/example.disable/module.php (renamed from modules_v4/example.module/module.php)6
2 files changed, 55 insertions, 3 deletions
diff --git a/modules_v4/example-middleware.disable/module.php b/modules_v4/example-middleware.disable/module.php
new file mode 100644
index 0000000000..ad1db9b5cd
--- /dev/null
+++ b/modules_v4/example-middleware.disable/module.php
@@ -0,0 +1,52 @@
+<?php
+
+use Fisharebest\Webtrees\Http\Middleware\MiddlewareInterface;
+use Fisharebest\Webtrees\Module\AbstractModule;
+use Fisharebest\Webtrees\Module\ModuleCustomInterface;
+use Fisharebest\Webtrees\Module\ModuleCustomTrait;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+
+return new class extends AbstractModule implements ModuleCustomInterface, MiddlewareInterface {
+ use ModuleCustomTrait;
+
+ /**
+ * How should this module be identified in the control panel, etc.?
+ *
+ * @return string
+ */
+ public function title(): string
+ {
+ return 'My custom middleware';
+ }
+
+ /**
+ * A sentence describing what this module does.
+ *
+ * @return string
+ */
+ public function description(): string
+ {
+ return 'This adds a custom HTTP headers to all responses';
+ }
+
+ /**
+ * @param Request $request
+ * @param Closure $next
+ *
+ * @return Response
+ */
+ public function handle(Request $request, Closure $next): Response
+ {
+ // Code here is executed before we process the request/response.
+ // We can prevent the request being executed by throwing an exception.
+
+ // Generate the response from the request.
+ $response = $next($request);
+
+ // Code here is executed after we process the request/response.
+ $response->headers->set('X-Powered-By', 'Fish');
+
+ return $response;
+ }
+};
diff --git a/modules_v4/example.module/module.php b/modules_v4/example.disable/module.php
index 54ac589824..2e0182ae5a 100644
--- a/modules_v4/example.module/module.php
+++ b/modules_v4/example.disable/module.php
@@ -7,13 +7,13 @@ return new class extends AbstractModule implements ModuleCustomInterface {
use ModuleCustomTrait;
/**
- * How should this module be labelled on tabs, menus, etc.?
+ * How should this module be identified in the control panel, etc.?
*
* @return string
*/
public function title(): string
{
- return 'My Custom module';
+ return 'My custom module';
}
/**
@@ -53,7 +53,7 @@ return new class extends AbstractModule implements ModuleCustomInterface {
*/
public function customModuleLatestVersionUrl(): string
{
- return 'https://www.webtrees.net';
+ return 'https://www.example.com/latest-version.txt';
}
/**