Browse code

Change bundle structure

Sebastian Zoglowek authored on14/08/2022 15:51:15
Showing1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,130 +0,0 @@
1
-<?php
2
-
3
-declare(strict_types=1);
4
-
5
-/*
6
- * This file is part of Oveleon ContaoMemberExtension Bundle.
7
- *
8
- * @package     contao-member-extension-bundle
9
- * @license     MIT
10
- * @author      Daniele Sciannimanica   <https://github.com/doishub>
11
- * @author      Fabian Ekert            <https://github.com/eki89>
12
- * @author      Sebastian Zoglowek      <https://github.com/zoglo>
13
- * @copyright   Oveleon                 <https://www.oveleon.de/>
14
- */
15
-
16
-use Contao\Backend;
17
-use Contao\Controller;
18
-use Contao\System;
19
-
20
-System::loadLanguageFile('tl_member_settings');
21
-
22
-// Add palettes to tl_module
23
-$GLOBALS['TL_DCA']['tl_module']['palettes']['avatar']       = '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
24
-$GLOBALS['TL_DCA']['tl_module']['palettes']['deleteAvatar'] = '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
25
-$GLOBALS['TL_DCA']['tl_module']['palettes']['memberList']   = '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
26
-$GLOBALS['TL_DCA']['tl_module']['palettes']['memberReader'] = '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
27
-
28
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
29
-    'exclude' => true,
30
-    'inputType' => 'select',
31
-    'options_callback' => static fn () => Controller::getTemplateGroup('memberExtension_list_'),
32
-    'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
33
-    'sql' => "varchar(64) NOT NULL default ''"
34
-];
35
-
36
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = [
37
-    'exclude' => true,
38
-    'inputType' => 'select',
39
-    'options_callback' => static fn () => Controller::getTemplateGroup('memberExtension_reader_'),
40
-    'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
41
-    'sql' => "varchar(64) NOT NULL default ''"
42
-];
43
-
44
-$GLOBALS['TL_DCA']['tl_module']['fields']['ext_order'] = [
45
-    'exclude' => true,
46
-    'inputType' => 'select',
47
-    'options' => ['order_random', 'order_asc', 'order_desc'],
48
-    'reference' => &$GLOBALS['TL_LANG']['tl_member_settings'],
49
-    'eval' => ['tl_class'=>'w50 clr', 'includeBlankOption'=>true, 'chosen'=>true,],
50
-    'sql' => "varchar(32) NOT NULL default ''"
51
-];
52
-
53
-$GLOBALS['TL_DCA']['tl_module']['fields']['ext_orderField'] = [
54
-    'exclude' => true,
55
-    'inputType' => 'select',
56
-    'options_callback' => ['tl_module_extension', 'getViewableMemberFields'],
57
-    'eval' => ['tl_class'=>'w50', 'includeBlankOption'=>true, 'chosen'=>true,],
58
-    'sql' => "varchar(32) NOT NULL default ''"
59
-];
60
-
61
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = [
62
-    'exclude' => true,
63
-    'inputType' => 'checkboxWizard',
64
-    'options_callback' => ['tl_module_extension', 'getMemberProperties'],
65
-    'eval' => ['multiple'=>true, 'tl_class'=>'clr'],
66
-    'sql' => "blob NULL"
67
-];
68
-
69
-$GLOBALS['TL_DCA']['tl_module']['fields']['ext_groups'] = [
70
-    'exclude' => true,
71
-    'inputType' => 'checkbox',
72
-    'foreignKey' => 'tl_member_group.name',
73
-    'eval' => ['multiple'=>true, 'tl_class'=>'clr'],
74
-    'sql' => "blob NULL",
75
-    'relation' => ['type'=>'hasMany', 'load'=>'lazy']
76
-];
77
-
78
-class tl_module_extension extends Backend
79
-{
80
-    /**
81
-     * Import the back end user object
82
-     */
83
-    public function __construct()
84
-    {
85
-        parent::__construct();
86
-        $this->import('Contao\BackendUser', 'User');
87
-    }
88
-
89
-    /**
90
-     * Return all fields of table tl_member without account data
91
-     */
92
-    public function getMemberProperties(): array
93
-    {
94
-        $return = [];
95
-
96
-        Contao\System::loadLanguageFile('tl_member');
97
-        $this->loadDataContainer('tl_member');
98
-
99
-        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
100
-        {
101
-            if (!empty($v['inputType']) && $v['inputType'] !== 'password')
102
-            {
103
-                $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0];
104
-            }
105
-        }
106
-
107
-        return $return;
108
-    }
109
-
110
-    /**
111
-     * Return all sortable fields of table tl_member
112
-     */
113
-    public function getViewableMemberFields(): array
114
-	{
115
-        $return = [];
116
-
117
-        Contao\System::loadLanguageFile('tl_member');
118
-        $this->loadDataContainer('tl_member');
119
-
120
-        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
121
-        {
122
-            if (!empty($v['inputType']) && $k !== 'avatar' && isset($v['eval']['feViewable']) && $v['eval']['feViewable'] === true)
123
-            {
124
-                $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] . ' ['.$k.']';
125
-            }
126
-        }
127
-
128
-        return $return;
129
-    }
130
-}
Browse code

Fix potential PHP8 errors

Sebastian Zoglowek authored on14/08/2022 15:19:39
Showing1 changed files
... ...
@@ -20,13 +20,10 @@ use Contao\System;
20 20
 System::loadLanguageFile('tl_member_settings');
21 21
 
22 22
 // Add palettes to tl_module
23
-// ToDo: Change to ArrayUtil::arrayInsert in the future
24
-array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
25
-    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
26
-    'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
-    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
28
-    'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
29
-]);
23
+$GLOBALS['TL_DCA']['tl_module']['palettes']['avatar']       = '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
24
+$GLOBALS['TL_DCA']['tl_module']['palettes']['deleteAvatar'] = '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
25
+$GLOBALS['TL_DCA']['tl_module']['palettes']['memberList']   = '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
26
+$GLOBALS['TL_DCA']['tl_module']['palettes']['memberReader'] = '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID';
30 27
 
31 28
 $GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
32 29
     'exclude' => true,
... ...
@@ -90,28 +87,9 @@ class tl_module_extension extends Backend
90 87
     }
91 88
 
92 89
     /**
93
-     * Check permissions to edit the table
94
-     *
95
-     * @throws Contao\CoreBundle\Exception\AccessDeniedException
96
-     */
97
-    public function checkPermission()
98
-    {
99
-        if ($this->User->isAdmin)
100
-        {
101
-            return;
102
-        }
103
-
104
-        if (!$this->User->hasAccess('modules', 'themes')) {
105
-            throw new Contao\CoreBundle\Exception\AccessDeniedException('Not enough permissions to access the front end modules module.');
106
-        }
107
-    }
108
-
109
-    /**
110 90
      * Return all fields of table tl_member without account data
111
-     *
112
-     * @return array
113 91
      */
114
-    public function getMemberProperties()
92
+    public function getMemberProperties(): array
115 93
     {
116 94
         $return = [];
117 95
 
... ...
@@ -131,11 +109,9 @@ class tl_module_extension extends Backend
131 109
 
132 110
     /**
133 111
      * Return all sortable fields of table tl_member
134
-     *
135
-     * @return array
136 112
      */
137
-    public function getViewableMemberFields()
138
-    {
113
+    public function getViewableMemberFields(): array
114
+	{
139 115
         $return = [];
140 116
 
141 117
         Contao\System::loadLanguageFile('tl_member');
... ...
@@ -143,7 +119,7 @@ class tl_module_extension extends Backend
143 119
 
144 120
         foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
145 121
         {
146
-            if (!empty($v['inputType']) && $v['eval']['feViewable'] === true && $k !== 'avatar')
122
+            if (!empty($v['inputType']) && $k !== 'avatar' && isset($v['eval']['feViewable']) && $v['eval']['feViewable'] === true)
147 123
             {
148 124
                 $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] . ' ['.$k.']';
149 125
             }
Browse code

[Bugfix] Fixed a bug where displaying memeber lists with page limit did not work

Sebastian Zoglowek authored on13/08/2022 19:16:25
Showing1 changed files
... ...
@@ -24,7 +24,7 @@ System::loadLanguageFile('tl_member_settings');
24 24
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
25 25
     'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
26 26
     'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
-    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
+    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
28 28
     'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
29 29
 ]);
30 30
 
Browse code

[Update] Remove avatar from member-list sorting-field

Sebastian Zoglowek authored on25/05/2022 17:07:29
Showing1 changed files
... ...
@@ -143,7 +143,7 @@ class tl_module_extension extends Backend
143 143
 
144 144
         foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
145 145
         {
146
-            if (!empty($v['inputType']) && $v['eval']['feViewable'] === true)
146
+            if (!empty($v['inputType']) && $v['eval']['feViewable'] === true && $k !== 'avatar')
147 147
             {
148 148
                 $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] . ' ['.$k.']';
149 149
             }
Browse code

[Update] Add pagination to member list

Sebastian Zoglowek authored on24/05/2022 22:53:25
Showing1 changed files
... ...
@@ -24,7 +24,7 @@ System::loadLanguageFile('tl_member_settings');
24 24
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
25 25
     'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
26 26
     'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
-    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
+    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,,numberOfItems,perPage,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
28 28
     'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
29 29
 ]);
30 30
 
Browse code

[Bugfix] Change avatar template to customTpl

Sebastian Zoglowek authored on24/05/2022 22:12:09
Showing1 changed files
... ...
@@ -22,7 +22,7 @@ System::loadLanguageFile('tl_member_settings');
22 22
 // Add palettes to tl_module
23 23
 // ToDo: Change to ArrayUtil::arrayInsert in the future
24 24
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
25
-    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
25
+    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
26 26
     'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27 27
     'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
28 28
     'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
Browse code

[Update] Add possibility to sort member list by a specific field (See: #4 )

Sebastian Zoglowek authored on28/02/2022 00:48:19
Showing1 changed files
... ...
@@ -15,13 +15,16 @@ declare(strict_types=1);
15 15
 
16 16
 use Contao\Backend;
17 17
 use Contao\Controller;
18
+use Contao\System;
19
+
20
+System::loadLanguageFile('tl_member_settings');
18 21
 
19 22
 // Add palettes to tl_module
20 23
 // ToDo: Change to ArrayUtil::arrayInsert in the future
21 24
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
22 25
     'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
23 26
     'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
24
-    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
27
+    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_order,ext_orderField,ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
25 28
     'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
26 29
 ]);
27 30
 
... ...
@@ -41,11 +44,28 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = [
41 44
     'sql' => "varchar(64) NOT NULL default ''"
42 45
 ];
43 46
 
47
+$GLOBALS['TL_DCA']['tl_module']['fields']['ext_order'] = [
48
+    'exclude' => true,
49
+    'inputType' => 'select',
50
+    'options' => ['order_random', 'order_asc', 'order_desc'],
51
+    'reference' => &$GLOBALS['TL_LANG']['tl_member_settings'],
52
+    'eval' => ['tl_class'=>'w50 clr', 'includeBlankOption'=>true, 'chosen'=>true,],
53
+    'sql' => "varchar(32) NOT NULL default ''"
54
+];
55
+
56
+$GLOBALS['TL_DCA']['tl_module']['fields']['ext_orderField'] = [
57
+    'exclude' => true,
58
+    'inputType' => 'select',
59
+    'options_callback' => ['tl_module_extension', 'getViewableMemberFields'],
60
+    'eval' => ['tl_class'=>'w50', 'includeBlankOption'=>true, 'chosen'=>true,],
61
+    'sql' => "varchar(32) NOT NULL default ''"
62
+];
63
+
44 64
 $GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = [
45 65
     'exclude' => true,
46 66
     'inputType' => 'checkboxWizard',
47 67
     'options_callback' => ['tl_module_extension', 'getMemberProperties'],
48
-    'eval' => ['multiple'=>true],
68
+    'eval' => ['multiple'=>true, 'tl_class'=>'clr'],
49 69
     'sql' => "blob NULL"
50 70
 ];
51 71
 
... ...
@@ -53,7 +73,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['ext_groups'] = [
53 73
     'exclude' => true,
54 74
     'inputType' => 'checkbox',
55 75
     'foreignKey' => 'tl_member_group.name',
56
-    'eval' => ['multiple'=>true],
76
+    'eval' => ['multiple'=>true, 'tl_class'=>'clr'],
57 77
     'sql' => "blob NULL",
58 78
     'relation' => ['type'=>'hasMany', 'load'=>'lazy']
59 79
 ];
... ...
@@ -108,4 +128,27 @@ class tl_module_extension extends Backend
108 128
 
109 129
         return $return;
110 130
     }
131
+
132
+    /**
133
+     * Return all sortable fields of table tl_member
134
+     *
135
+     * @return array
136
+     */
137
+    public function getViewableMemberFields()
138
+    {
139
+        $return = [];
140
+
141
+        Contao\System::loadLanguageFile('tl_member');
142
+        $this->loadDataContainer('tl_member');
143
+
144
+        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
145
+        {
146
+            if (!empty($v['inputType']) && $v['eval']['feViewable'] === true)
147
+            {
148
+                $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0] . ' ['.$k.']';
149
+            }
150
+        }
151
+
152
+        return $return;
153
+    }
111 154
 }
Browse code

[Bugfix] Do not use protected groups as group selection for member list and reader

Sebastian Zoglowek authored on27/02/2022 22:18:49
Showing1 changed files
... ...
@@ -21,8 +21,8 @@ use Contao\Controller;
21 21
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
22 22
     'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
23 23
     'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
24
-    'memberList' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
25
-    'memberReader' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
24
+    'memberList' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
25
+    'memberReader' => '{title_legend},name,headline,type;{config_legend},ext_groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
26 26
 ]);
27 27
 
28 28
 $GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
... ...
@@ -49,6 +49,15 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = [
49 49
     'sql' => "blob NULL"
50 50
 ];
51 51
 
52
+$GLOBALS['TL_DCA']['tl_module']['fields']['ext_groups'] = [
53
+    'exclude' => true,
54
+    'inputType' => 'checkbox',
55
+    'foreignKey' => 'tl_member_group.name',
56
+    'eval' => ['multiple'=>true],
57
+    'sql' => "blob NULL",
58
+    'relation' => ['type'=>'hasMany', 'load'=>'lazy']
59
+];
60
+
52 61
 class tl_module_extension extends Backend
53 62
 {
54 63
     /**
Browse code

[Addition] Add deleteAvatar module

Sebastian Zoglowek authored on27/02/2022 17:15:38
Showing1 changed files
... ...
@@ -20,6 +20,7 @@ use Contao\Controller;
20 20
 // ToDo: Change to ArrayUtil::arrayInsert in the future
21 21
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
22 22
     'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
23
+    'deleteAvatar' => '{title_legend},name,headline,type;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
23 24
     'memberList' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
24 25
     'memberReader' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
25 26
 ]);
Browse code

[Update] Change templateGroup names from member_ to memberExtension_

Sebastian Zoglowek authored on27/02/2022 17:13:14
Showing1 changed files
... ...
@@ -27,7 +27,7 @@ array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
27 27
 $GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
28 28
     'exclude' => true,
29 29
     'inputType' => 'select',
30
-    'options_callback' => static fn () => Controller::getTemplateGroup('member_list_'),
30
+    'options_callback' => static fn () => Controller::getTemplateGroup('memberExtension_list_'),
31 31
     'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
32 32
     'sql' => "varchar(64) NOT NULL default ''"
33 33
 ];
... ...
@@ -35,7 +35,7 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
35 35
 $GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = [
36 36
     'exclude' => true,
37 37
     'inputType' => 'select',
38
-    'options_callback' => static fn () => Controller::getTemplateGroup('member_reader_'),
38
+    'options_callback' => static fn () => Controller::getTemplateGroup('memberExtension_reader_'),
39 39
     'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
40 40
     'sql' => "varchar(64) NOT NULL default ''"
41 41
 ];
Browse code

[Update] Changed DCA structure

Sebastian Zoglowek authored on26/02/2022 03:04:48
Showing1 changed files
... ...
@@ -1,58 +1,54 @@
1 1
 <?php
2 2
 
3
+declare(strict_types=1);
4
+
3 5
 /*
4 6
  * This file is part of Oveleon ContaoMemberExtension Bundle.
5 7
  *
6
- * (c) https://www.oveleon.de/
8
+ * @package     contao-member-extension-bundle
9
+ * @license     MIT
10
+ * @author      Daniele Sciannimanica   <https://github.com/doishub>
11
+ * @author      Fabian Ekert            <https://github.com/eki89>
12
+ * @author      Sebastian Zoglowek      <https://github.com/zoglo>
13
+ * @copyright   Oveleon                 <https://www.oveleon.de/>
7 14
  */
8 15
 
9
-array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, array
10
-(
11
-    'avatar'       => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
12
-    'memberList'   => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
13
-    'memberReader' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
14
-));
16
+use Contao\Backend;
17
+use Contao\Controller;
15 18
 
16
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = array
17
-(
18
-    'exclude'                 => true,
19
-    'inputType'               => 'select',
20
-    'options_callback' => static function ()
21
-    {
22
-        return Contao\Controller::getTemplateGroup('member_list_');
23
-    },
24
-    'eval'                    => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
25
-    'sql'                     => "varchar(64) NOT NULL default ''"
26
-);
19
+// Add palettes to tl_module
20
+// ToDo: Change to ArrayUtil::arrayInsert in the future
21
+array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, [
22
+    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
23
+    'memberList' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
24
+    'memberReader' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
25
+]);
27 26
 
28
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = array
29
-(
30
-    'exclude'                 => true,
31
-    'inputType'               => 'select',
32
-    'options_callback' => static function ()
33
-    {
34
-        return Contao\Controller::getTemplateGroup('member_reader_');
35
-    },
36
-    'eval'                    => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
37
-    'sql'                     => "varchar(64) NOT NULL default ''"
38
-);
27
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = [
28
+    'exclude' => true,
29
+    'inputType' => 'select',
30
+    'options_callback' => static fn () => Controller::getTemplateGroup('member_list_'),
31
+    'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
32
+    'sql' => "varchar(64) NOT NULL default ''"
33
+];
39 34
 
40
-$GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = array
41
-(
42
-    'exclude'                 => true,
43
-    'inputType'               => 'checkboxWizard',
44
-    'options_callback'        => array('tl_module_extension', 'getMemberProperties'),
45
-    'eval'                    => array('multiple'=>true),
46
-    'sql'                     => "blob NULL"
47
-);
35
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = [
36
+    'exclude' => true,
37
+    'inputType' => 'select',
38
+    'options_callback' => static fn () => Controller::getTemplateGroup('member_reader_'),
39
+    'eval' => ['includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'],
40
+    'sql' => "varchar(64) NOT NULL default ''"
41
+];
48 42
 
43
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = [
44
+    'exclude' => true,
45
+    'inputType' => 'checkboxWizard',
46
+    'options_callback' => ['tl_module_extension', 'getMemberProperties'],
47
+    'eval' => ['multiple'=>true],
48
+    'sql' => "blob NULL"
49
+];
49 50
 
50
-/**
51
- * Provide miscellaneous methods that are used by the data configuration array.
52
- *
53
- * @author Daniele Sciannimanica <https://github.com/doishub>
54
- */
55
-class tl_module_extension extends Contao\Backend
51
+class tl_module_extension extends Backend
56 52
 {
57 53
     /**
58 54
      * Import the back end user object
... ...
@@ -70,7 +66,8 @@ class tl_module_extension extends Contao\Backend
70 66
      */
71 67
     public function checkPermission()
72 68
     {
73
-        if ($this->User->isAdmin) {
69
+        if ($this->User->isAdmin)
70
+        {
74 71
             return;
75 72
         }
76 73
 
... ...
@@ -86,7 +83,7 @@ class tl_module_extension extends Contao\Backend
86 83
      */
87 84
     public function getMemberProperties()
88 85
     {
89
-        $return = array();
86
+        $return = [];
90 87
 
91 88
         Contao\System::loadLanguageFile('tl_member');
92 89
         $this->loadDataContainer('tl_member');
Browse code

- Add module "MemberList" - Add module "MemberReader"

doishub authored on08/12/2020 15:39:30
Showing1 changed files
... ...
@@ -8,5 +8,97 @@
8 8
 
9 9
 array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, array
10 10
 (
11
-    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
11
+    'avatar'       => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
12
+    'memberList'   => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{redirect_legend},jumpTo;{template_legend:hide},customTpl,memberListTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID',
13
+    'memberReader' => '{title_legend},name,headline,type;{config_legend},groups,memberFields,imgSize;{template_legend:hide},customTpl,memberReaderTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
12 14
 ));
15
+
16
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberListTpl'] = array
17
+(
18
+    'exclude'                 => true,
19
+    'inputType'               => 'select',
20
+    'options_callback' => static function ()
21
+    {
22
+        return Contao\Controller::getTemplateGroup('member_list_');
23
+    },
24
+    'eval'                    => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
25
+    'sql'                     => "varchar(64) NOT NULL default ''"
26
+);
27
+
28
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberReaderTpl'] = array
29
+(
30
+    'exclude'                 => true,
31
+    'inputType'               => 'select',
32
+    'options_callback' => static function ()
33
+    {
34
+        return Contao\Controller::getTemplateGroup('member_reader_');
35
+    },
36
+    'eval'                    => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
37
+    'sql'                     => "varchar(64) NOT NULL default ''"
38
+);
39
+
40
+$GLOBALS['TL_DCA']['tl_module']['fields']['memberFields'] = array
41
+(
42
+    'exclude'                 => true,
43
+    'inputType'               => 'checkboxWizard',
44
+    'options_callback'        => array('tl_module_extension', 'getMemberProperties'),
45
+    'eval'                    => array('multiple'=>true),
46
+    'sql'                     => "blob NULL"
47
+);
48
+
49
+
50
+/**
51
+ * Provide miscellaneous methods that are used by the data configuration array.
52
+ *
53
+ * @author Daniele Sciannimanica <https://github.com/doishub>
54
+ */
55
+class tl_module_extension extends Contao\Backend
56
+{
57
+    /**
58
+     * Import the back end user object
59
+     */
60
+    public function __construct()
61
+    {
62
+        parent::__construct();
63
+        $this->import('Contao\BackendUser', 'User');
64
+    }
65
+
66
+    /**
67
+     * Check permissions to edit the table
68
+     *
69
+     * @throws Contao\CoreBundle\Exception\AccessDeniedException
70
+     */
71
+    public function checkPermission()
72
+    {
73
+        if ($this->User->isAdmin) {
74
+            return;
75
+        }
76
+
77
+        if (!$this->User->hasAccess('modules', 'themes')) {
78
+            throw new Contao\CoreBundle\Exception\AccessDeniedException('Not enough permissions to access the front end modules module.');
79
+        }
80
+    }
81
+
82
+    /**
83
+     * Return all fields of table tl_member without account data
84
+     *
85
+     * @return array
86
+     */
87
+    public function getMemberProperties()
88
+    {
89
+        $return = array();
90
+
91
+        Contao\System::loadLanguageFile('tl_member');
92
+        $this->loadDataContainer('tl_member');
93
+
94
+        foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
95
+        {
96
+            if (!empty($v['inputType']) && $v['inputType'] !== 'password')
97
+            {
98
+                $return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0];
99
+            }
100
+        }
101
+
102
+        return $return;
103
+    }
104
+}
Browse code

Update Readme

doishub authored on12/11/2019 16:11:24
Showing1 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 <?php
2 2
 
3 3
 /*
4
- * This file is part of Oveleon ContaoOnofficeShopTv Bundle.
4
+ * This file is part of Oveleon ContaoMemberExtension Bundle.
5 5
  *
6 6
  * (c) https://www.oveleon.de/
7 7
  */
Browse code

Initial commit: Frontend module member avatar added

oveleon authored on08/03/2019 16:40:16
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,12 @@
1
+<?php
2
+
3
+/*
4
+ * This file is part of Oveleon ContaoOnofficeShopTv Bundle.
5
+ *
6
+ * (c) https://www.oveleon.de/
7
+ */
8
+
9
+array_insert($GLOBALS['TL_DCA']['tl_module']['palettes'], 0, array
10
+(
11
+    'avatar' => '{title_legend},name,headline,type;{source_legend},imgSize;{template_legend:hide},memberTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID'
12
+));