5 include_once
'Services/Mail/classes/class.ilMailOptions.php';
20 private static $mode = self::MODE_DESKTOP;
51 "method" =>
"getLogin",
52 "course_export_fix_value" => 1,
53 "group_export_fix_value" => 1,
54 "changeable_hide" =>
true,
55 "required_hide" =>
true,
56 "group" =>
"personal_data"),
58 "input" =>
"password",
59 "required_hide" =>
true,
60 "visib_reg_hide" =>
true,
61 'visib_lua_fix_value' => 0,
62 "course_export_hide" =>
true,
63 "export_hide" =>
false,
64 "group_export_hide" =>
true,
66 "group" =>
"personal_data"),
71 "method" =>
"getFirstname",
72 "required_fix_value" => 1,
73 "visib_reg_fix_value" => 1,
74 'visib_lua_fix_value' => 1,
75 "course_export_fix_value" => 1,
76 "group_export_fix_value" => 1,
77 "group" =>
"personal_data"),
82 "method" =>
"getLastname",
83 "required_fix_value" => 1,
84 "visib_reg_fix_value" => 1,
85 'visib_lua_fix_value' => 1,
86 "course_export_fix_value" => 1,
87 "group_export_fix_value" => 1,
88 "group" =>
"personal_data"),
91 "lang_var" =>
"person_title",
94 "method" =>
"getUTitle",
95 "group" =>
"personal_data"),
97 "input" =>
"birthday",
98 "lang_var" =>
"birthday",
101 "method" =>
"getBirthday",
102 "group" =>
"personal_data"),
105 "values" => array(
"n" =>
"salutation_n",
"f" =>
"salutation_f",
"m" =>
"salutation_m"),
106 "method" =>
"getGender",
107 "group" =>
"personal_data"),
109 "input" =>
"picture",
110 "required_hide" =>
true,
111 "visib_reg_hide" =>
true,
112 "course_export_hide" =>
true,
113 "group_export_hide" =>
true,
114 "lists_hide" =>
true,
115 "lang_var" =>
"personal_picture",
116 "group" =>
"personal_data"),
119 "changeable_hide" =>
true,
120 "required_hide" =>
true,
121 "visib_reg_hide" =>
true,
122 "export_hide" =>
true,
123 "course_export_hide" =>
true,
124 "group_export_hide" =>
true,
125 "lists_hide" =>
true,
126 "group" =>
"personal_data"),
127 "interests_general" => array(
128 "input" =>
"multitext",
131 "method" =>
"getGeneralInterests",
132 "course_export_hide" =>
true,
133 "group_export_hide" =>
true,
134 "lists_hide" =>
true,
135 "group" =>
"interests"),
136 "interests_help_offered" => array(
137 "input" =>
"multitext",
140 "method" =>
"getOfferingHelp",
141 "course_export_hide" =>
true,
142 "group_export_hide" =>
true,
143 "lists_hide" =>
true,
144 "group" =>
"interests"),
145 "interests_help_looking" => array(
146 "input" =>
"multitext",
149 "method" =>
"getLookingForHelp",
150 "course_export_hide" =>
true,
151 "group_export_hide" =>
true,
152 "lists_hide" =>
true,
153 "group" =>
"interests"),
154 "org_units" => array(
155 "input" =>
"noneditable",
156 "lang_var" =>
"objs_orgu",
157 "required_hide" =>
true,
158 "visib_reg_hide" =>
true,
159 "course_export_hide" =>
false,
160 "group_export_hide" =>
false,
161 "export_hide" =>
true,
162 "changeable_hide" =>
true,
163 "changeable_fix_value" => 0,
164 "changeable_lua_hide" =>
true,
165 "changeable_lua_fix_value" => 0,
166 "method" =>
"getOrgUnitsRepresentation",
167 "group" =>
"contact_data"),
168 "institution" => array(
172 "method" =>
"getInstitution",
173 "group" =>
"contact_data"),
174 "department" => array(
178 "method" =>
"getDepartment",
179 "group" =>
"contact_data"),
184 "method" =>
"getStreet",
185 "group" =>
"contact_data"),
190 "method" =>
"getZipcode",
191 "group" =>
"contact_data"),
196 "method" =>
"getCity",
197 "group" =>
"contact_data"),
202 "method" =>
"getCountry",
203 "group" =>
"contact_data"),
204 "sel_country" => array(
205 "input" =>
"sel_country",
206 "method" =>
"getSelectedCountry",
207 "group" =>
"contact_data"),
208 "phone_office" => array(
212 "method" =>
"getPhoneOffice",
213 "group" =>
"contact_data"),
214 "phone_home" => array(
218 "method" =>
"getPhoneHome",
219 "group" =>
"contact_data"),
220 "phone_mobile" => array(
224 "method" =>
"getPhoneMobile",
225 "group" =>
"contact_data"),
230 "method" =>
"getFax",
231 "group" =>
"contact_data"),
236 "method" =>
"getEmail",
237 "group" =>
"contact_data"),
238 "second_email" => array(
239 "input" =>
"second_email",
242 "method" =>
"getSecondEmail",
243 "group" =>
"contact_data"),
245 "input" =>
"textarea",
248 "method" =>
"getHobby",
249 "lists_hide" =>
true,
250 "group" =>
"contact_data"),
251 "referral_comment" => array(
252 "input" =>
"textarea",
255 "method" =>
"getComment",
256 "course_export_hide" =>
true,
257 "group_export_hide" =>
true,
258 "lists_hide" =>
true,
259 "group" =>
"contact_data"),
260 "matriculation" => array(
264 "method" =>
"getMatriculation",
267 "input" =>
"language",
268 "method" =>
"getLanguage",
269 "required_hide" =>
true,
270 "visib_reg_hide" =>
true,
271 "course_export_hide" =>
true,
272 "group_export_hide" =>
true,
273 "group" =>
"settings"),
274 "skin_style" => array(
275 "input" =>
"skinstyle",
276 "required_hide" =>
true,
277 "visib_reg_hide" =>
true,
278 "course_export_hide" =>
true,
279 "group_export_hide" =>
true,
280 "group" =>
"settings"),
281 "hits_per_page" => array(
282 "input" =>
"hitsperpage",
285 10 => 10, 15 => 15, 20 => 20, 30 => 30, 40 => 40,
286 50 => 50, 100 => 100, 9999 => 9999),
287 "required_hide" =>
true,
288 "visib_reg_hide" =>
true,
289 "course_export_hide" =>
true,
290 "group_export_hide" =>
true,
291 "group" =>
"settings"),
304 "hide_own_online_status" => array(
305 "input" =>
"selection",
306 "lang_var" =>
"awrn_user_show",
307 "required_hide" =>
true,
308 "visib_reg_hide" =>
true,
309 "course_export_hide" =>
true,
310 "group_export_hide" =>
true,
311 "group" =>
"settings",
314 "y" =>
"user_awrn_hide",
315 "n" =>
"user_awrn_show" 317 "bs_allow_to_contact_me" => array(
318 "input" =>
"selection",
319 "lang_var" =>
"buddy_allow_to_contact_me",
320 "required_hide" =>
true,
321 "visib_reg_hide" =>
true,
322 "course_export_hide" =>
true,
323 "group_export_hide" =>
true,
324 "group" =>
"settings",
327 "n" =>
"buddy_allow_to_contact_me_no",
328 "y" =>
"buddy_allow_to_contact_me_yes" 331 "chat_osc_accept_msg" => array(
332 "input" =>
"selection",
333 "lang_var" =>
"chat_osc_accept_msg",
334 "required_hide" =>
true,
335 "visib_reg_hide" =>
true,
336 "course_export_hide" =>
true,
337 "group_export_hide" =>
true,
338 "group" =>
"settings",
341 "n" =>
"chat_osc_accepts_messages_no",
342 "y" =>
"chat_osc_accepts_messages_yes" 345 "preferences" => array(
346 "visible_fix_value" => 1,
347 "changeable_fix_value" => 1,
348 "required_hide" =>
true,
349 "visib_reg_hide" =>
true,
350 "course_export_hide" =>
true,
351 "group_export_hide" =>
true,
352 "group" =>
"preferences"),
353 "mail_incoming_mail" => array(
354 "input" =>
"selection",
360 "required_hide" =>
true,
361 "visib_reg_hide" =>
true,
362 "course_export_hide" =>
true,
363 "group_export_hide" =>
true,
364 "export_hide" =>
true,
365 "search_hide" =>
true,
366 "group" =>
"settings")
379 $this->skip_groups = array();
380 $this->skip_fields = array();
384 $lng->loadLanguageModule(
"awrn");
385 $lng->loadLanguageModule(
"buddysystem");
394 foreach (self::$user_field as
$f => $p) {
396 if (in_array($p[
"group"], $this->skip_groups) ||
397 in_array(
$f, $this->skip_fields)) {
419 if (
$ilSetting->get(
'usr_settings_visib_lua_' . $field, 1)) {
420 $fields[$field] =
$info;
421 } elseif (
$info[
'visib_lua_fix_value']) {
422 $fields[$field] =
$info;
434 $this->skip_groups[] = $a_group;
442 $this->skip_fields[] = $a_field;
454 $rbacreview = $DIC[
'rbacreview'];
455 $ilias = $DIC[
'ilias'];
458 if (self::$mode == self::MODE_REGISTRATION) {
459 include_once
'Services/Registration/classes/class.ilRegistrationSettings.php';
462 self::$user_field[
"username"][
"group"] =
"login_data";
463 self::$user_field[
"password"][
"group"] =
"login_data";
464 self::$user_field[
"language"][
"default"] =
$lng->lang_key;
467 $roles = self::$user_field[
"roles"];
468 unset(self::$user_field[
"roles"]);
469 self::$user_field[
"roles"] = $roles;
470 self::$user_field[
"roles"][
"group"] =
"settings";
475 $custom_fields_done =
false;
476 foreach ($fields as
$f => $p) {
478 if (($p[
"group"] != $current_group) &&
480 if (is_array($custom_fields) && !$custom_fields_done) {
482 if ($current_group ==
"other" || $p[
"group"] ==
"settings") {
484 if ($current_group !=
"other") {
486 $sh->setTitle(
$lng->txt(
"other"));
487 $a_form->addItem($sh);
489 foreach ($custom_fields as $custom_field) {
490 $a_form->addItem($custom_field);
492 $custom_fields_done =
true;
497 $sh->setTitle(
$lng->txt($p[
"group"]));
498 $a_form->addItem($sh);
499 $current_group = $p[
"group"];
503 if (isset($p[
"method"])) {
507 $lv = (isset($p[
"lang_var"]) && $p[
"lang_var"] !=
"")
511 switch ($p[
"input"]) {
513 if ((
int)
$ilSetting->get(
'allow_change_loginname') || self::$mode == self::MODE_REGISTRATION) {
516 $val->
setValue($a_user->getLogin());
518 $val->setMaxLength($p[
'maxlength']);
520 $val->setRequired(
true);
525 $val->
setValue($a_user->getLogin());
528 $a_form->addItem($val);
537 $ti->setMaxLength($p[
"maxlength"]);
538 $ti->setSize($p[
"size"]);
540 if (!$ti->getRequired() || $ti->getValue()) {
541 $ti->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
543 $a_form->addItem($ti);
549 include_once(
"./Services/Form/classes/class.ilCountrySelectInputGUI.php");
555 if (!$ci->getRequired() || $ci->getValue()) {
556 $ci->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
558 $a_form->addItem($ci);
565 include_once
"./Services/Calendar/classes/class.ilDateTime.php";
567 if ($a_user && strlen($a_user->$m())) {
572 if (!$bi->getRequired() || $date) {
573 $bi->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
575 $a_form->addItem($bi);
585 foreach ($p[
"values"] as $k => $v) {
590 if (!$rg->getRequired() || $rg->getValue()) {
593 $a_form->addItem($rg);
600 $ii->setDisabled(
$ilSetting->get(
"usr_settings_disable_upload"));
602 $upload = $a_form->getFileUpload(
"userfile");
603 if ($upload[
"name"]) {
604 $ii->setPending($upload[
"name"]);
606 $im = ilObjUser::_getPersonalPicturePath(
614 $ii->setAlt(
$lng->txt(
"personal_picture"));
618 $a_form->addItem(
$ii);
623 if (self::$mode == self::MODE_DESKTOP) {
625 $global_roles = $rbacreview->getGlobalRoles();
626 foreach ($global_roles as $role_id) {
627 if (in_array($role_id, $rbacreview->assignedRoles($a_user->getId()))) {
628 $roleObj = $ilias->obj_factory->getInstanceByObjId($role_id);
629 $role_names .= $roleObj->getTitle() .
", ";
634 $dr->
setValue(substr($role_names, 0, -2));
635 $a_form->addItem($dr);
637 } elseif (self::$mode == self::MODE_REGISTRATION) {
638 if ($registration_settings->roleSelectionEnabled()) {
639 include_once(
"./Services/AccessControl/classes/class.ilObjRole.php");
642 $options[$role[
"id"]] = $role[
"title"];
650 if (!$ta->getRequired()) {
651 $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
657 $ta->setValue(array_shift(array_keys(
$options)));
659 $a_form->addItem($ta);
672 if (!$em->getRequired() || $em->getValue()) {
673 $em->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
675 if (self::MODE_REGISTRATION == self::$mode) {
676 $em->setRetype(
true);
678 $a_form->addItem($em);
688 if (!$em->getRequired() || $em->getValue()) {
689 $em->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
691 if (self::MODE_REGISTRATION == self::$mode) {
692 $em->setRetype(
true);
694 $a_form->addItem($em);
703 $ta->setRows($p[
"rows"]);
704 $ta->setCols($p[
"cols"]);
706 if (!$ta->getRequired() || $ta->getValue()) {
707 $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
709 $a_form->addItem($ta);
714 if (self::$mode == self::MODE_REGISTRATION) {
715 if (!$registration_settings->passwordGenerationEnabled()) {
718 $ta->setRequired(
true);
725 $a_form->addItem($ta);
736 $lng->loadLanguageModule(
"meta");
737 foreach (
$lng->getInstalledLanguages() as $lang_key) {
743 if (!$ta->getRequired() || $ta->getValue()) {
744 $ta->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
746 $a_form->addItem($ta);
755 $ti->setValue($a_user->$m());
757 $ti->setMaxLength($p[
"maxlength"]);
758 $ti->setSize($p[
"size"]);
760 if (!$ti->getRequired() || $ti->getValue()) {
761 $ti->setDisabled(
$ilSetting->get(
"usr_settings_disable_" .
$f));
763 if ($this->ajax_href) {
765 $ti->setDataSource($this->ajax_href .
"&f=" .
$f);
767 $a_form->addItem($ti);
774 $a_form->addItem($ne);
781 if (is_array($custom_fields) && !$custom_fields_done) {
783 if ($current_group !=
"other") {
785 $sh->setTitle(
$lng->txt(
"other"));
786 $a_form->addItem($sh);
788 foreach ($custom_fields as $custom_field) {
789 $a_form->addItem($custom_field);
796 $this->ajax_href = $a_href;
808 if (self::$mode == self::MODE_DESKTOP) {
809 return (
$ilSetting->get(
"usr_settings_hide_" . $a_setting) != 1);
811 if (isset(self::$user_field[$a_setting][
"visib_reg_hide"]) && self::$user_field[$a_setting][
"visib_reg_hide"] ===
true) {
814 return (
$ilSetting->get(
"usr_settings_visib_reg_" . $a_setting,
"1") ||
$ilSetting->get(
"require_" . $a_setting,
"0"));
824 if (in_array(
$mode, array(self::MODE_DESKTOP, self::MODE_REGISTRATION))) {
846 foreach (self::$user_field as $field => $definition) {
848 if ($a_personal_data_only &&
$ilSetting->get(
"usr_settings_hide_" . $field)) {
852 if (
$ilSetting->get(
"require_" . $field) && $definition[
"method"]) {
853 $value = $a_user->{$definition[
"method"]}();
861 if ($a_include_udf) {
862 $user_defined_data = $a_user->getUserDefinedData();
864 include_once
'./Services/User/classes/class.ilUserDefinedFields.php';
866 foreach ($user_defined_fields->getRequiredDefinitions() as $field => $definition) {
868 if ($a_personal_data_only && !$definition[
"visible"]) {
872 if (!$user_defined_data[
"f_" . $field]) {
904 if (
$ilSetting->get(
'usr_settings_hide_' . $setting) == 1 ||
905 $ilSetting->get(
'usr_settings_disable_' . $setting) == 1) {
933 $ignorableSettings = array();
935 foreach (self::$user_field as $field => $definition) {
937 if (
'username' == $field ||
938 'password' == $field) {
947 if (self::isEditableByUser($field)) {
948 $ignorableSettings[] = $field;
952 return $ignorableSettings;
static isProfileIncomplete($a_user, $a_include_udf=true, $a_personal_data_only=true)
Check if all required personal data fields are set.
This class represents an option in a radio group.
setValue($a_value)
Set Value.
static _getInstance()
Get instance.
getLocalUserAdministrationFields()
Get visible fields in local user administration.
static _lookupRegisterAllowed()
get all roles that are activated in user registration
getStandardFields()
Get standard user fields array.
__construct()
Constructor.
static userSettingVisible($a_setting)
Checks whether user setting is visible.
setValue($a_value)
Set Value.
static getIgnorableRequiredSettings()
Returns an array of all ignorable profiel fields.
skipField($a_field)
Skip a field.
static getPasswordRequirementsInfo()
infotext for ilPasswordInputGUI setInfo()
static isEditableByUser($setting)
Returns whether a profile setting is editable by an user in the profile gui.
This class represents a text property in a property form.
This class represents a non editable value in a property form.
setDate($a_date, $a_format)
Set date.
This class represents a text area property in a property form.
static getLogger($a_component_id)
Get component logger.
addStandardFieldsToForm($a_form, $a_user=null, array $custom_fields=null)
Add standard fields to form.
setValue($a_value)
Set Value.
skipGroup($a_group)
Skip a group.