19declare(strict_types=1);
39 private readonly FieldsConfigurationRepository $profile_fields_repository,
42 $this->user_fields = $this->profile_fields_repository->get();
46 array $sections_to_skip = [],
47 array $fields_to_skip = []
51 static function (array
$c, ProfileField $v) use ($sections_to_skip, $fields_to_skip): array {
52 if (!in_array($v->getSection(), $sections_to_skip)
53 && !in_array(get_class($v->getDefinition()), $fields_to_skip)) {
54 $c[$v->getIdentifier()] = $v;
65 array $sections_to_skip = [],
66 array $fields_to_skip = []
70 static fn(ProfileField $v) => !in_array($v->getSection(), $sections_to_skip)
71 && !in_array($v->getDefinition()::class, $fields_to_skip)
72 && $context->isFieldVisible($v, $user)
79 return $this->profile_fields_repository->getByIdentifier($identifier);
84 return $this->profile_fields_repository->getByClass($class);
92 array $fields_to_skip = []
95 $this->getVisibleFieldsBySection($context, $user, $fields_to_skip),
98 $section_header->
setTitle($this->
lng->txt($v[0]->getSection()->value));
99 $c->addItem($section_header);
100 return $this->addSectionFieldsToForm(
$c, $context, $do_require, $user, $v);
110 array $skip_fields = []
113 $this->getVisibleFields($context, $user, [], $skip_fields),
115 if ($form->getItemByPostVar($v->getIdentifier())->getDisabled()) {
118 return $v->addValueToUserObject(
121 $form->
getInput($v->getIdentifier()),
131 return $this->profile_data_repository->getSingle($usr_id);
137 return $this->profile_data_repository->getMultiple($usr_ids);
142 foreach ($this->user_fields as $field) {
143 if (!$field->isVisibleToUser()) {
147 if ($field->isRequired() && empty($field->retrieveValueFromUser($user))) {
156 string $setting_identifier
158 $field = $this->profile_fields_repository->getByIdentifier($setting_identifier);
159 if ($field ===
null) {
163 return $field->isVisibleToUser();
168 $field = $this->profile_fields_repository->getByIdentifier($setting);
169 if ($field ===
null) {
172 return $field->isVisibleToUser() && $field->isChangeableByUser();
179 static function (array
$c, ProfileField $v): array {
180 if ($v->getIdentifier() ===
'username'
181 || $v->getIdentifier() ===
'password'
183 || !$v->isChangeableByUser()) {
197 static function (array
$c, ProfileField $v): array {
198 if ($v->isCustom()) {
199 $c[$v->getIdentifier()] = $v;
211 $this->getVisibleFields($context),
212 static function (array
$c, ProfileField $v): array {
213 if ($v->isCustom()) {
214 $c[$v->getIdentifier()] = $v;
228 return $this->profile_fields_repository->getByClass(Fields\Standard\
Avatar::class)
229 ->getDefinition()->tempStorePicture($form);
238 array $fields_to_skip = []
242 $this->getVisibleFields($context, $user, [], $fields_to_skip),
243 static function (array
$c, ProfileField $v): array {
244 $c[$v->getSection()->value][] = $v;
248 AvailableProfileSections::cases(),
249 static function (array
$c, AvailableProfileSections $v): array {
269 $input = $v->getLegacyInput($this->
lng, $context, $user);
270 $input->setDisabled(!$context->isFieldChangeable($v, $user));
271 $input->setRequired($do_require && $input->getRequired());
getFieldByIdentifier(string $identifier)
tempStorePicture(\ilPropertyFormGUI $form)
getVisibleFields(Context $context, ?\ilObjUser $user=null, array $sections_to_skip=[], array $fields_to_skip=[])
userFieldEditableByUser(string $setting)
getFields(array $sections_to_skip=[], array $fields_to_skip=[])
isProfileIncomplete(\ilObjUser $user)
__construct(private readonly Language $lng, private readonly FieldsConfigurationRepository $profile_fields_repository, private readonly DataRepository $profile_data_repository)
getIgnorableRequiredFields()
getFieldByClass(string $class)
getVisibleFieldsBySection(Context $context, ?\ilObjUser $user, array $fields_to_skip=[])
addFormValuesToUser(\ilPropertyFormGUI $form, Context $context, \ilObjUser $user, array $skip_fields=[])
getDataForMultiple(array $usr_ids)
addFieldsToForm(\ilPropertyFormGUI $form, Context $context, bool $do_require, ?\ilObjUser $user, array $fields_to_skip=[])
getAllUserDefinedFields()
getVisibleUserDefinedFields(Context $context)
addSectionFieldsToForm(\ilPropertyFormGUI $form, Context $context, bool $do_require, ?\ilObjUser $user, array $fields)
userFieldVisibleToUser(string $setting_identifier)
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(!file_exists('../ilias.ini.php'))