Browse code

Version 1.5 initial commit

Benjamin Roth authored on24/06/2024 12:06:17
Showing1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,178 +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      Sebastian Zoglowek     <https://github.com/zoglo>
11
- * @author      Daniele Sciannimanica  <https://github.com/doishub>
12
- * @author      Fabian Ekert           <https://github.com/eki89>
13
- * @copyright   Oveleon                <https://www.oveleon.de/>
14
- */
15
-
16
-namespace Oveleon\ContaoMemberExtensionBundle;
17
-
18
-use Contao\Config;
19
-use Contao\Date;
20
-use Contao\Environment;
21
-use Contao\MemberGroupModel;
22
-use Contao\MemberModel;
23
-use Contao\Module;
24
-use Contao\PageModel;
25
-use Contao\StringUtil;
26
-use Contao\System;
27
-
28
-/**
29
- * Parent class for member modules.
30
- *
31
- * @author Daniele Sciannimanica <https://github.com/doishub>
32
- */
33
-abstract class ModuleMemberExtension extends Module
34
-{
35
-    /**
36
-     * Parse member template
37
-     *
38
-     * @param $objMember
39
-     * @param $objTemplate
40
-     * @param $arrMemberFields
41
-     * @param $strImgSize
42
-     * @return string
43
-     */
44
-    protected function parseMemberTemplate($objMember, $objTemplate, $arrMemberFields, $strImgSize): string
45
-    {
46
-        System::loadLanguageFile('default');
47
-        System::loadLanguageFile('tl_member');
48
-        System::loadLanguageFile('countries');
49
-        System::loadLanguageFile('languages');
50
-
51
-        $arrFields = [];
52
-
53
-        foreach ($arrMemberFields as $field)
54
-        {
55
-            switch ($field)
56
-            {
57
-                /*case 'homeDir':
58
-                case 'assignDir':
59
-                    break;*/
60
-
61
-                case 'avatar':
62
-                    Member::parseMemberAvatar($objMember, $objTemplate, $strImgSize);
63
-                    break;
64
-
65
-                default:
66
-                    if ($varValue = $objMember->{$field})
67
-                    {
68
-                        if (\is_array(($arrValue = StringUtil::deserialize($varValue))))
69
-                        {
70
-                            $arrFields[$field] = implode(",", $arrValue);
71
-                        }
72
-                        else
73
-                        {
74
-                            $arrFields[$field] = $varValue;
75
-                        }
76
-                        //self::parseMemberDetails($arrFields, $field, $varValue);
77
-                    }
78
-            }
79
-        }
80
-
81
-        $objTemplate->fields = $arrFields;
82
-
83
-        if ($this->jumpTo)
84
-        {
85
-            $objTemplate->link = $this->generateMemberUrl($objMember);
86
-        }
87
-
88
-        return $objTemplate->parse();
89
-    }
90
-
91
-    /**
92
-     * Generate a URL and return it as string
93
-     *
94
-     * @param MemberModel $objMember
95
-     *
96
-     * @return string
97
-     */
98
-    protected function generateMemberUrl(MemberModel $objMember): string
99
-    {
100
-        $objPage = PageModel::findPublishedById($this->jumpTo);
101
-
102
-        if (!$objPage instanceof PageModel)
103
-        {
104
-            $strLink = StringUtil::ampersand(Environment::get('request'));
105
-        }
106
-        else
107
-        {
108
-            $params = (Config::get('useAutoItem') ? '/' : '/items/') . ($objMember->alias ?: $objMember->id);
109
-            $strLink = StringUtil::ampersand($objPage->getFrontendUrl($params));
110
-        }
111
-
112
-        return $strLink;
113
-    }
114
-
115
-    protected function parseMemberDetails(&$arrFields, $field, $value)
116
-    {
117
-        $strReturn = sprintf('<span class="label">%s: </span>',$GLOBALS['TL_LANG']['tl_member'][$field][0] ?? null);
118
-
119
-        if (!\is_array(($arrValue = StringUtil::deserialize($value))))
120
-        {
121
-            switch ($field) {
122
-                case 'gender':
123
-                    $strReturn .= $GLOBALS['TL_LANG']['MSC'][$value] ?? $value;
124
-                    break;
125
-
126
-                case 'email':
127
-                    $strEmail = StringUtil::encodeEmail($value);
128
-                    $strReturn .= '<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;' . $strEmail . '" title="' . $strEmail . '">' . preg_replace('/\?.*$/', '', $strEmail) . '</a>';
129
-                    break;
130
-
131
-                case 'phone':
132
-                case 'mobile':
133
-                case 'fax':
134
-                    $strTel = preg_replace('/[^a-z\d+]/i', '', (string)$value);
135
-                    $strReturn .= '<a href="tel:' . $strTel . '" title="' . $value . '">' . $value . '</a>';
136
-                    break;
137
-
138
-                case 'website':
139
-                    $strUrl = $value;
140
-
141
-                    if (strncmp($value, 'http://', 7) !== 0 || strncmp($value, 'https://', 8) !== 0) {
142
-                        $strUrl = 'https://' . $value;
143
-                    }
144
-
145
-                    $strReturn .= '<a href="' . $strUrl . '" title="' . $value . '" target="blank noopener" rel="noreferer">' . $value . '</a>';
146
-                    break;
147
-
148
-                case 'dateOfBirth':
149
-                    $strReturn .= Date::parse(Config::get('dateFormat'), $value) ?? $value;
150
-                    break;
151
-
152
-                case 'country':
153
-                    $strReturn .= $GLOBALS['TL_LANG']['CNT'][$value] ?? $value;
154
-                    break;
155
-
156
-                case 'language':
157
-                    $strReturn .= $GLOBALS['TL_LANG']['LNG'][$value] ?? $value;
158
-                    break;
159
-
160
-                default:
161
-                    $strReturn .= $value;
162
-            }
163
-        }
164
-        else if ('groups' === $field)
165
-        {
166
-            $arrReturn = [];
167
-
168
-            foreach ($arrValue as $value)
169
-            {
170
-                $arrReturn[] = MemberGroupModel::findById($value)->name;
171
-            }
172
-
173
-            $strReturn .= implode(", ", $arrReturn);
174
-        }
175
-
176
-        $arrFields[$field] = $strReturn;
177
-    }
178
-}
Browse code

[Change] Drop contao 4.9 support

Sebastian Zoglowek authored on15/01/2023 16:55:51
Showing1 changed files
... ...
@@ -101,12 +101,12 @@ abstract class ModuleMemberExtension extends Module
101 101
 
102 102
         if (!$objPage instanceof PageModel)
103 103
         {
104
-            $strLink = ampersand(Environment::get('request'));
104
+            $strLink = StringUtil::ampersand(Environment::get('request'));
105 105
         }
106 106
         else
107 107
         {
108 108
             $params = (Config::get('useAutoItem') ? '/' : '/items/') . ($objMember->alias ?: $objMember->id);
109
-            $strLink = ampersand($objPage->getFrontendUrl($params));
109
+            $strLink = StringUtil::ampersand($objPage->getFrontendUrl($params));
110 110
         }
111 111
 
112 112
         return $strLink;
Sebastian Zoglowek authored on13/01/2023 19:37:52
Showing1 changed files
... ...
@@ -52,7 +52,7 @@ abstract class ModuleMemberExtension extends Module
52 52
 
53 53
         foreach ($arrMemberFields as $field)
54 54
         {
55
-            switch($field)
55
+            switch ($field)
56 56
             {
57 57
                 /*case 'homeDir':
58 58
                 case 'assignDir':
... ...
@@ -63,7 +63,7 @@ abstract class ModuleMemberExtension extends Module
63 63
                     break;
64 64
 
65 65
                 default:
66
-                    if($varValue = $objMember->{$field})
66
+                    if ($varValue = $objMember->{$field})
67 67
                     {
68 68
                         if (\is_array(($arrValue = StringUtil::deserialize($varValue))))
69 69
                         {
... ...
@@ -80,7 +80,7 @@ abstract class ModuleMemberExtension extends Module
80 80
 
81 81
         $objTemplate->fields = $arrFields;
82 82
 
83
-        if($this->jumpTo)
83
+        if ($this->jumpTo)
84 84
         {
85 85
             $objTemplate->link = $this->generateMemberUrl($objMember);
86 86
         }
Browse code

Update comments

Sebastian Zoglowek authored on14/08/2022 16:18:52
Showing1 changed files
... ...
@@ -7,10 +7,10 @@ declare(strict_types=1);
7 7
  *
8 8
  * @package     contao-member-extension-bundle
9 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/>
10
+ * @author      Sebastian Zoglowek     <https://github.com/zoglo>
11
+ * @author      Daniele Sciannimanica  <https://github.com/doishub>
12
+ * @author      Fabian Ekert           <https://github.com/eki89>
13
+ * @copyright   Oveleon                <https://www.oveleon.de/>
14 14
  */
15 15
 
16 16
 namespace Oveleon\ContaoMemberExtensionBundle;
Browse code

Change bundle structure

Sebastian Zoglowek authored on14/08/2022 15:51:15
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,178 @@
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
+namespace Oveleon\ContaoMemberExtensionBundle;
17
+
18
+use Contao\Config;
19
+use Contao\Date;
20
+use Contao\Environment;
21
+use Contao\MemberGroupModel;
22
+use Contao\MemberModel;
23
+use Contao\Module;
24
+use Contao\PageModel;
25
+use Contao\StringUtil;
26
+use Contao\System;
27
+
28
+/**
29
+ * Parent class for member modules.
30
+ *
31
+ * @author Daniele Sciannimanica <https://github.com/doishub>
32
+ */
33
+abstract class ModuleMemberExtension extends Module
34
+{
35
+    /**
36
+     * Parse member template
37
+     *
38
+     * @param $objMember
39
+     * @param $objTemplate
40
+     * @param $arrMemberFields
41
+     * @param $strImgSize
42
+     * @return string
43
+     */
44
+    protected function parseMemberTemplate($objMember, $objTemplate, $arrMemberFields, $strImgSize): string
45
+    {
46
+        System::loadLanguageFile('default');
47
+        System::loadLanguageFile('tl_member');
48
+        System::loadLanguageFile('countries');
49
+        System::loadLanguageFile('languages');
50
+
51
+        $arrFields = [];
52
+
53
+        foreach ($arrMemberFields as $field)
54
+        {
55
+            switch($field)
56
+            {
57
+                /*case 'homeDir':
58
+                case 'assignDir':
59
+                    break;*/
60
+
61
+                case 'avatar':
62
+                    Member::parseMemberAvatar($objMember, $objTemplate, $strImgSize);
63
+                    break;
64
+
65
+                default:
66
+                    if($varValue = $objMember->{$field})
67
+                    {
68
+                        if (\is_array(($arrValue = StringUtil::deserialize($varValue))))
69
+                        {
70
+                            $arrFields[$field] = implode(",", $arrValue);
71
+                        }
72
+                        else
73
+                        {
74
+                            $arrFields[$field] = $varValue;
75
+                        }
76
+                        //self::parseMemberDetails($arrFields, $field, $varValue);
77
+                    }
78
+            }
79
+        }
80
+
81
+        $objTemplate->fields = $arrFields;
82
+
83
+        if($this->jumpTo)
84
+        {
85
+            $objTemplate->link = $this->generateMemberUrl($objMember);
86
+        }
87
+
88
+        return $objTemplate->parse();
89
+    }
90
+
91
+    /**
92
+     * Generate a URL and return it as string
93
+     *
94
+     * @param MemberModel $objMember
95
+     *
96
+     * @return string
97
+     */
98
+    protected function generateMemberUrl(MemberModel $objMember): string
99
+    {
100
+        $objPage = PageModel::findPublishedById($this->jumpTo);
101
+
102
+        if (!$objPage instanceof PageModel)
103
+        {
104
+            $strLink = ampersand(Environment::get('request'));
105
+        }
106
+        else
107
+        {
108
+            $params = (Config::get('useAutoItem') ? '/' : '/items/') . ($objMember->alias ?: $objMember->id);
109
+            $strLink = ampersand($objPage->getFrontendUrl($params));
110
+        }
111
+
112
+        return $strLink;
113
+    }
114
+
115
+    protected function parseMemberDetails(&$arrFields, $field, $value)
116
+    {
117
+        $strReturn = sprintf('<span class="label">%s: </span>',$GLOBALS['TL_LANG']['tl_member'][$field][0] ?? null);
118
+
119
+        if (!\is_array(($arrValue = StringUtil::deserialize($value))))
120
+        {
121
+            switch ($field) {
122
+                case 'gender':
123
+                    $strReturn .= $GLOBALS['TL_LANG']['MSC'][$value] ?? $value;
124
+                    break;
125
+
126
+                case 'email':
127
+                    $strEmail = StringUtil::encodeEmail($value);
128
+                    $strReturn .= '<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;' . $strEmail . '" title="' . $strEmail . '">' . preg_replace('/\?.*$/', '', $strEmail) . '</a>';
129
+                    break;
130
+
131
+                case 'phone':
132
+                case 'mobile':
133
+                case 'fax':
134
+                    $strTel = preg_replace('/[^a-z\d+]/i', '', (string)$value);
135
+                    $strReturn .= '<a href="tel:' . $strTel . '" title="' . $value . '">' . $value . '</a>';
136
+                    break;
137
+
138
+                case 'website':
139
+                    $strUrl = $value;
140
+
141
+                    if (strncmp($value, 'http://', 7) !== 0 || strncmp($value, 'https://', 8) !== 0) {
142
+                        $strUrl = 'https://' . $value;
143
+                    }
144
+
145
+                    $strReturn .= '<a href="' . $strUrl . '" title="' . $value . '" target="blank noopener" rel="noreferer">' . $value . '</a>';
146
+                    break;
147
+
148
+                case 'dateOfBirth':
149
+                    $strReturn .= Date::parse(Config::get('dateFormat'), $value) ?? $value;
150
+                    break;
151
+
152
+                case 'country':
153
+                    $strReturn .= $GLOBALS['TL_LANG']['CNT'][$value] ?? $value;
154
+                    break;
155
+
156
+                case 'language':
157
+                    $strReturn .= $GLOBALS['TL_LANG']['LNG'][$value] ?? $value;
158
+                    break;
159
+
160
+                default:
161
+                    $strReturn .= $value;
162
+            }
163
+        }
164
+        else if ('groups' === $field)
165
+        {
166
+            $arrReturn = [];
167
+
168
+            foreach ($arrValue as $value)
169
+            {
170
+                $arrReturn[] = MemberGroupModel::findById($value)->name;
171
+            }
172
+
173
+            $strReturn .= implode(", ", $arrReturn);
174
+        }
175
+
176
+        $arrFields[$field] = $strReturn;
177
+    }
178
+}