Browse code

Version 1.5 initial commit

Benjamin Roth authored on24/06/2024 12:06:17
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,51 @@
1
+<?php
2
+
3
+namespace Oveleon\ContaoMemberExtensionBundle\EventListener\DataContainer;
4
+
5
+use Contao\Controller;
6
+use Contao\CoreBundle\DependencyInjection\Attribute\AsCallback;
7
+use Contao\System;
8
+
9
+class MemberFieldsOptionsListener
10
+{
11
+    public function __construct() {
12
+        Controller::loadDataContainer('tl_member');
13
+        System::loadLanguageFile('tl_member');
14
+    }
15
+
16
+    #[AsCallback(table: 'tl_module', target: 'fields.ext_orderField.options')]
17
+    public function getEditableMemberFields(): array
18
+    {
19
+        $fields = [];
20
+
21
+        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k => $v)
22
+        {
23
+            if (
24
+                !empty($v['inputType']) &&
25
+                $k !== 'avatar' &&
26
+                isset($v['eval']['feEditable']) &&
27
+                $v['eval']['feEditable'] === true
28
+            ) {
29
+                $fields[$k] = ($GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] ?? $k) . ' ['.$k.']';
30
+            }
31
+        }
32
+
33
+        return $fields;
34
+    }
35
+
36
+    #[AsCallback(table: 'tl_module', target: 'fields.memberFields.options')]
37
+    public function getMemberProperties(): array
38
+    {
39
+        $properties = [];
40
+
41
+        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k => $v)
42
+        {
43
+            if (!empty($v['inputType']) && $v['inputType'] !== 'password')
44
+            {
45
+                $properties[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] ?? $k;
46
+            }
47
+        }
48
+
49
+        return $properties;
50
+    }
51
+}