Skip to content

Commit b6ea017

Browse files
committed
fix(form_validator): import valodators from JSON
Signed-off-by: Thierry Bugier <tbugier@teclib.com>
1 parent d3aeb0d commit b6ea017

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

inc/form.class.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2136,6 +2136,13 @@ public static function import(PluginFormcreatorImportLinker $importLinker, $form
21362136
}
21372137
}
21382138

2139+
if ($forms_id
2140+
&& isset($form['_validators'])) {
2141+
foreach ($form['_validators'] as $validator) {
2142+
PluginFormcreatorForm_Validator::import($forms_id, $validator);
2143+
}
2144+
}
2145+
21392146
return $forms_id;
21402147
}
21412148

inc/form_validator.class.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,21 @@ public static function import($forms_id = 0, $validator = []) {
7474

7575
$validator['plugin_formcreator_forms_id'] = $forms_id;
7676

77+
// Find the validator
78+
if (!in_array($validator['itemtype'], [User::class, Group::class])) {
79+
return false;
80+
}
81+
$linkedItemtype = $validator['itemtype'];
82+
$linkedItem = new $linkedItemtype();
83+
$crit = [
84+
'name' => $validator['_item'],
85+
];
86+
if (!$linkedItem->getFromDBByName($crit)) {
87+
// validator not found. Let's ignore it
88+
return false;
89+
}
90+
$validator['items_id'] = $linkedItem->getID();
91+
7792
if ($validators_id = plugin_formcreator_getFromDBByField($item, 'uuid', $validator['uuid'])) {
7893
// add id key
7994
$validator['id'] = $validators_id;

0 commit comments

Comments
 (0)