/** * Validate field form * * @param ilPropertyFormGUI $form * @param ilUserDefinedFields $user_field_definitions * @param array $access * @return bool */ protected function validateForm($form, $user_field_definitions, array &$access) { global $lng; if ($form->checkInput()) { $valid = true; $incoming = (array) $form->getInput("access"); $access = array(); foreach (array_keys($this->getAccessOptions()) as $id) { $access[$id] = in_array($id, $incoming); } if ($access['required'] && !$access['visib_reg']) { $this->confirm_change = true; $form->getItemByPostVar("access")->setAlert($lng->txt('udf_required_requires_visib_reg')); $valid = false; } if (!$this->field_id && $user_field_definitions->nameExists($form->getInput("name"))) { $form->getItemByPostVar("name")->setAlert($lng->txt('udf_name_already_exists')); $valid = false; } if ($form->getInput("field_type") == UDF_TYPE_SELECT) { $user_field_definitions->setFieldValues($form->getInput("selvalue")); if ($error = $user_field_definitions->validateValues()) { switch ($error) { case UDF_DUPLICATE_VALUES: $form->getItemByPostVar("selvalue")->setAlert($lng->txt('udf_duplicate_entries')); $valid = false; break; } } } if (!$valid) { ilUtil::sendFailure($lng->txt("form_input_not_valid")); } return $valid; } return false; }
/** * Validate field form * * @param ilPropertyFormGUI $form * @param ilUserDefinedFields $user_field_definitions * @param array $access * @param array $a_field_permissions * @return bool */ protected function validateForm($form, $user_field_definitions, array &$access, array $a_field_permissions = null) { global $lng; if ($form->checkInput()) { $valid = true; $incoming = (array) $form->getInput("access"); if ($a_field_permissions) { $perm_map = self::getAccessPermissions(); } $access = array(); foreach (array_keys($this->getAccessOptions()) as $id) { $access[$id] = in_array($id, $incoming); // disabled fields if ($a_field_permissions && !$a_field_permissions[ilUDFPermissionHelper::ACTION_FIELD_EDIT_ACCESS][$perm_map[$id]]) { $access[$id] = $this->field_definition[$id]; } } if ($access['required'] && !$access['visib_reg']) { $this->confirm_change = true; $form->getItemByPostVar("access")->setAlert($lng->txt('udf_required_requires_visib_reg')); $valid = false; } if (!$this->field_id && $user_field_definitions->nameExists($form->getInput("name"))) { $form->getItemByPostVar("name")->setAlert($lng->txt('udf_name_already_exists')); $valid = false; } if ($form->getInput("field_type") == UDF_TYPE_SELECT && (!$a_field_permissions || $a_field_permissions[ilUDFPermissionHelper::ACTION_FIELD_EDIT_PROPERTY][ilUDFPermissionHelper::SUBACTION_FIELD_PROPERTIES])) { $user_field_definitions->setFieldValues($form->getInput("selvalue")); if ($error = $user_field_definitions->validateValues()) { switch ($error) { case UDF_DUPLICATE_VALUES: $form->getItemByPostVar("selvalue")->setAlert($lng->txt('udf_duplicate_entries')); $valid = false; break; } } } if (!$valid) { ilUtil::sendFailure($lng->txt("form_input_not_valid")); } return $valid; } return false; }