Browse code

Reimplement extended registration and personal data form handling

Benjamin Roth authored on22/03/2023 12:59:10
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,82 @@
1
+<?php
2
+
3
+/**
4
+ * eSales Media Formilicious for Contao Open Source CMS
5
+ *
6
+ * Copyright (C) 2013-2014 eSalesMedia
7
+ *
8
+ * @package    eSM_formilicious
9
+ * @link       http://www.esales-media.de
10
+ * @license    http://www.gnu.org/licenses/lgpl-3.0.html LGPL
11
+ *
12
+ * @author     Benjamin Roth <benjamin@esales-media.de>
13
+ */
14
+
15
+
16
+/**
17
+ * Run in a custom namespace, so the class can be replaced
18
+ */
19
+namespace vonRotenberg\FormiliciousBundle\Controller\Frontend\Module;
20
+
21
+use Contao\ModulePersonalData as OrgModulePersonalData;
22
+use Contao\PageModel;
23
+use Contao\System;
24
+
25
+/**
26
+ * Class ModulePersonalData
27
+ *
28
+ * Front end module "personal data".
29
+ * @copyright  Leo Feyer 2005-2014
30
+ * @author     Leo Feyer <https://contao.org>
31
+ * @package    Core
32
+ */
33
+class ModulePersonalData extends OrgModulePersonalData
34
+{
35
+
36
+  public function generate()
37
+  {
38
+    $this->loadDataContainer('tl_member');
39
+    $originalDca = $GLOBALS['TL_DCA']['tl_member'];
40
+    $return = parent::generate();
41
+    $GLOBALS['TL_DCA']['tl_member'] = $originalDca;
42
+
43
+    return $return;
44
+  }
45
+
46
+
47
+  /**
48
+   * Generate the module
49
+   */
50
+  protected function compile()
51
+  {
52
+    /** @var PageModel $objPage */
53
+    global $objPage;
54
+
55
+    $GLOBALS['TL_LANGUAGE'] = $objPage->language;
56
+
57
+    System::loadLanguageFile('tl_member');
58
+    $this->loadDataContainer('tl_member');
59
+
60
+
61
+    $arrEditable = [];
62
+    foreach ($this->editable as $key=>$fielddata)
63
+    {
64
+      // Split formilicious editable data in single vars
65
+      list($field, $fieldWidth, $fieldClr, $fieldMandatory) = array_values($fielddata);
66
+      $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['eSM_fl_width'] = $fieldWidth;
67
+      $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['eSM_fl_clear'] = $fieldClr;
68
+      if ($fieldMandatory)
69
+      {
70
+        $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['mandatory'] = $fieldMandatory;
71
+      } else {
72
+        $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['mandatory'] = false;
73
+
74
+      }
75
+      $arrEditable[$key] = $field;
76
+    }
77
+    $this->editable = $arrEditable;
78
+
79
+    parent::compile();
80
+
81
+  }
82
+}