Browse code

Add reader module and extend API service to provide job details

Benjamin Roth authored on06/02/2023 17:22:18
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,66 @@
1
+<?php
2
+
3
+declare(strict_types=1);
4
+
5
+/*
6
+ * This file is part of alox bundle for Contao.
7
+ *
8
+ * (c) Benjamin Roth
9
+ *
10
+ * @license commercial
11
+ */
12
+
13
+namespace vossmedien\AloxBundle\Controller\Frontend\Module;
14
+
15
+use Contao\Config;
16
+use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
17
+use Contao\CoreBundle\ServiceAnnotation\FrontendModule;
18
+use Contao\Input;
19
+use Contao\ModuleModel;
20
+use Contao\PageModel;
21
+use Contao\Template;
22
+use Symfony\Component\HttpFoundation\Request;
23
+use Symfony\Component\HttpFoundation\Response;
24
+use vossmedien\AloxBundle\API\Zvoove;
25
+
26
+/**
27
+ * @FrontendModule(JobReaderModuleController::TYPE, category="miscellaneous")
28
+ */
29
+class JobReaderModuleController extends AbstractFrontendModuleController
30
+{
31
+    public const TYPE = 'alox_jobreader';
32
+
33
+    /**
34
+     * @var Zvoove
35
+     */
36
+    protected $api;
37
+
38
+    public function __construct(Zvoove $api)
39
+    {
40
+        $this->api = $api;
41
+    }
42
+
43
+
44
+    protected function getResponse(Template $template, ModuleModel $model, Request $request): ?Response
45
+    {
46
+        if ($request->get('id'))
47
+        {
48
+            $job = $this->api->getStelleById($request->get('id'));
49
+        }
50
+
51
+        // Populate template vars
52
+        if ($job !== null)
53
+        {
54
+            $template->job = $job->getData();
55
+        }
56
+
57
+        // Back link if overview page is defined
58
+        if ($model->overviewPage && ($overviewPage = PageModel::findByPk($model->overviewPage)) !== null)
59
+        {
60
+            $template->listUrl = $overviewPage->getFrontendUrl();
61
+        }
62
+
63
+        return $template->getResponse();
64
+    }
65
+
66
+}