diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php new file mode 100644 index 000000000..e61072dd4 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php @@ -0,0 +1,43 @@ +render(); + } + + /** + * Create a new entry. + * + * @param StatusFormBuilder $form + * @return \Symfony\Component\HttpFoundation\Response + */ + public function create(StatusFormBuilder $form) + { + return $form->render(); + } + + /** + * Edit an existing entry. + * + * @param StatusFormBuilder $form + * @param $id + * @return \Symfony\Component\HttpFoundation\Response + */ + public function edit(StatusFormBuilder $form, $id) + { + return $form->render($id); + } +} diff --git a/addons/default/visiosoft/advs-module/src/Status/Contract/StatusInterface.php b/addons/default/visiosoft/advs-module/src/Status/Contract/StatusInterface.php new file mode 100644 index 000000000..f0e95990e --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Status/Contract/StatusInterface.php @@ -0,0 +1,8 @@ +model = $model; + } +} diff --git a/addons/default/visiosoft/advs-module/src/Status/StatusRouter.php b/addons/default/visiosoft/advs-module/src/Status/StatusRouter.php new file mode 100644 index 000000000..7e5726d99 --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Status/StatusRouter.php @@ -0,0 +1,8 @@ +extensions = $extensions; + } + public function handle( ProfileFormBuilder $builder, MessageBag $messages, @@ -27,6 +39,11 @@ class ProfileFormHandler 'google_address' => $builder->getPostValue('google_address') ?: null, ]; + if (($valid = $this->validate($parameters)) !== true) { + $messages->error($valid['msg']); + return; + } + if (setting_value('visiosoft.module.profile::show_education_profession')) { $parameters = array_merge($parameters, [ 'education' => $builder->getPostValue('education'), @@ -70,4 +87,21 @@ class ProfileFormHandler } return $changes; } + + public function validate(array $fields) + { + $validators = $this->extensions + ->search('visiosoft.module.profile::validation.*') + ->enabled(); + + foreach ($validators as $validator) { + $valid = $validator->validate($fields); + + if ($valid['error']) { + return $valid; + } + } + + return true; + } } diff --git a/addons/default/visiosoft/profile-module/src/Profile/Validator/Contract/ValidatorExtensionInterface.php b/addons/default/visiosoft/profile-module/src/Profile/Validator/Contract/ValidatorExtensionInterface.php new file mode 100644 index 000000000..d918ba98a --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Validator/Contract/ValidatorExtensionInterface.php @@ -0,0 +1,6 @@ + 'ltr', ], 'ku' => [ - 'direction' => 'ltr', + 'direction' => 'rtl', ], 'kv' => [ 'direction' => 'ltr',