*/ /** * Run in a custom namespace, so the class can be replaced */ namespace eSM_formilicious; /** * Class ModuleRegistration * * Front end module "registration". * @copyright Leo Feyer 2005-2014 * @author Leo Feyer * @package Core */ class ModuleRegistration extends \Contao\ModuleRegistration { protected $originalDca; public function generate() { $return = parent::generate(); $GLOBALS['TL_DCA']['tl_member'] = $this->originalDca; return $return; } /** * Generate the module */ protected function compile() { /** @var \PageModel $objPage */ global $objPage; $GLOBALS['TL_LANGUAGE'] = $objPage->language; \System::loadLanguageFile('tl_member'); $this->loadDataContainer('tl_member'); $this->originalDca = $GLOBALS['TL_DCA']['tl_member']; $arrEditable = []; $arrFieldgroups = []; foreach ($this->editable as $key=>$fielddata) { // Split formilicious editable data in single vars list($active, $field, $fieldGroup, $fieldMandatory, $fieldClass, $fieldWidth, $fieldClr, $position) = array_values($fielddata); if (!$active) { continue; } if (!\in_array($fieldGroup,$arrFieldgroups)) { $arrFieldgroups[] = $fieldGroup; } $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['eSM_fl_class'] = $fieldClass; $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['eSM_fl_width'] = $fieldWidth; $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['eSM_fl_clear'] = $fieldClr; if ($fieldMandatory) { $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['mandatory'] = $fieldMandatory == 'yes' ? true : false; } if ($fieldGroup) { $GLOBALS['TL_DCA']['tl_member']['fields'][$field]['eval']['feGroup'] = $fieldGroup; } $arrEditable[$key] = $field; } $this->editable = $arrEditable; // Prevent empty password exception in Contao >= 4.8 in password not username validation if (\Input::post('FORM_SUBMIT') == 'tl_registration_' . $this->id && \Input::post('username') == '' && \Input::post('email')) { \Input::setPost('username',\Input::post('email')); } $this->Template->fieldGroups = $arrFieldgroups; parent::compile(); } }