ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
ilPersonalProfileGUI Class Reference

GUI class for personal profile. More...

+ Collaboration diagram for ilPersonalProfileGUI:

Public Member Functions

 ilPersonalProfileGUI ()
 constructor More...
 
executeCommand ()
 execute command More...
 
 workWithUserSetting ($setting)
 Returns TRUE if working with the given user setting is allowed, FALSE otherwise. More...
 
 userSettingVisible ($setting)
 Returns TRUE if user setting is visible, FALSE otherwise. More...
 
 userSettingEnabled ($setting)
 Returns TRUE if user setting is enabled, FALSE otherwise. More...
 
 uploadUserPicture ()
 Upload user image. More...
 
 removeUserPicture ()
 remove user image More...
 
 saveProfile ()
 save user profile data More...
 
 showProfile ()
 show profile form More...
 
 addLocationToForm (ilPropertyFormGUI $a_form, ilObjUser $a_user)
 Add location fields to form if activated. More...
 
 setTabs ()
 
 __showOtherInformations ()
 
 __showUserDefinedFields ()
 
 __checkUserDefinedRequiredFields ()
 
 setHeader ()
 Set header. More...
 
 showPersonalData ($a_no_init=false)
 Personal data form. More...
 
 initPersonalDataForm ()
 Init personal form. More...
 
 savePersonalData ()
 Save personal data form. More...
 
 showPublicProfile ($a_no_init=false)
 Public profile form. More...
 
 initPublicProfileForm ()
 Init public profile form. More...
 
 showPublicProfileFields (ilPropertyformGUI $form, array $prefs, $parent=null, $anonymized=false)
 Add fields to form. More...
 
 savePublicProfile ()
 Save public profile form. More...
 
 showExportImport ()
 Show export/import. More...
 
 exportPersonalData ()
 Export personal data. More...
 
 downloadPersonalData ()
 Download personal data export file. More...
 
 importPersonalDataSelection ()
 Import personal data selection. More...
 
 initPersonalDataImportForm ()
 Init personal data import form. More...
 
 importPersonalData ()
 Import personal data. More...
 

Data Fields

 $tpl
 
 $lng
 
 $ilias
 
 $ctrl
 
 $user_defined_fields = null
 

Protected Member Functions

 getProfilePortfolio ()
 has profile set to a portfolio? More...
 

Detailed Description

GUI class for personal profile.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

@ilCtrl_Calls ilPersonalProfileGUI: ilPublicUserProfileGUI

Definition at line 12 of file class.ilPersonalProfileGUI.php.

Member Function Documentation

◆ __checkUserDefinedRequiredFields()

ilPersonalProfileGUI::__checkUserDefinedRequiredFields ( )

Definition at line 694 of file class.ilPersonalProfileGUI.php.

695 {
696 foreach($this->user_defined_fields->getVisibleDefinitions() as $definition)
697 {
698 $field_id = $definition['field_id'];
699 if($definition['required'] and !strlen($_POST['udf'][$field_id]))
700 {
701 return false;
702 }
703 }
704 return true;
705 }
$_POST['username']
Definition: cron.php:12

References $_POST.

Referenced by saveProfile().

+ Here is the caller graph for this function:

◆ __showOtherInformations()

ilPersonalProfileGUI::__showOtherInformations ( )

Definition at line 624 of file class.ilPersonalProfileGUI.php.

625 {
626 $d_set = new ilSetting("delicous");
627 if($this->userSettingVisible("matriculation") or count($this->user_defined_fields->getVisibleDefinitions())
628 or $d_set->get("user_profile") == "1")
629 {
630 return true;
631 }
632 return false;
633 }
userSettingVisible($setting)
Returns TRUE if user setting is visible, FALSE otherwise.
ILIAS Setting Class.

References userSettingVisible().

+ Here is the call graph for this function:

◆ __showUserDefinedFields()

ilPersonalProfileGUI::__showUserDefinedFields ( )

Definition at line 635 of file class.ilPersonalProfileGUI.php.

636 {
637 global $ilUser;
638
639 $user_defined_data = $ilUser->getUserDefinedData();
640 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
641 {
642 if($definition['field_type'] == UDF_TYPE_TEXT)
643 {
644 $this->tpl->setCurrentBlock("field_text");
645 $this->tpl->setVariable("FIELD_VALUE",ilUtil::prepareFormOutput($user_defined_data[$field_id]));
646 if(!$definition['changeable'])
647 {
648 $this->tpl->setVariable("DISABLED_FIELD",'disabled=\"disabled\"');
649 $this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
650 }
651 else
652 {
653 $this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
654 }
655 $this->tpl->parseCurrentBlock();
656 }
657 else
658 {
659 if($definition['changeable'])
660 {
661 $name = 'udf['.$definition['field_id'].']';
662 $disabled = false;
663 }
664 else
665 {
666 $name = '';
667 $disabled = true;
668 }
669 $this->tpl->setCurrentBlock("field_select");
670 $this->tpl->setVariable("SELECT_BOX",ilUtil::formSelect($user_defined_data[$field_id],
671 $name,
672 $this->user_defined_fields->fieldValuesToSelectArray(
673 $definition['field_values']),
674 false,
675 true,0,'','',$disabled));
676 $this->tpl->parseCurrentBlock();
677 }
678 $this->tpl->setCurrentBlock("user_defined");
679
680 if($definition['required'])
681 {
682 $name = $definition['field_name']."<span class=\"asterisk\">*</span>";
683 }
684 else
685 {
686 $name = $definition['field_name'];
687 }
688 $this->tpl->setVariable("TXT_FIELD_NAME",$name);
689 $this->tpl->parseCurrentBlock();
690 }
691 return true;
692 }
const UDF_TYPE_TEXT
static formSelect($selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
global $ilUser
Definition: imgupload.php:15

References $ilUser, ilUtil\formSelect(), ilUtil\prepareFormOutput(), and UDF_TYPE_TEXT.

+ Here is the call graph for this function:

◆ addLocationToForm()

ilPersonalProfileGUI::addLocationToForm ( ilPropertyFormGUI  $a_form,
ilObjUser  $a_user 
)

Add location fields to form if activated.

Parameters
ilPropertyFormGUI$a_form
ilObjUser$a_user

Definition at line 537 of file class.ilPersonalProfileGUI.php.

538 {
539 global $ilCtrl;
540
541 // check map activation
542 include_once("./Services/Maps/classes/class.ilMapUtil.php");
544 {
545 return;
546 }
547
548 // Don't really know if this is still necessary...
549 $this->lng->loadLanguageModule("maps");
550
551 // Get user settings
552 $latitude = $a_user->getLatitude();
553 $longitude = $a_user->getLongitude();
554 $zoom = $a_user->getLocationZoom();
555
556 // Get Default settings, when nothing is set
557 if ($latitude == 0 && $longitude == 0 && $zoom == 0)
558 {
560 $latitude = $def["latitude"];
561 $longitude = $def["longitude"];
562 $zoom = $def["zoom"];
563 }
564
565 $street = $a_user->getStreet();
566 if (!$street)
567 {
568 $street = $this->lng->txt("street");
569 }
570 $city = $a_user->getCity();
571 if (!$city)
572 {
573 $city = $this->lng->txt("city");
574 }
575 $country = $a_user->getCountry();
576 if (!$country)
577 {
578 $country = $this->lng->txt("country");
579 }
580
581 // location property
582 $loc_prop = new ilLocationInputGUI($this->lng->txt("location"),
583 "location");
584 $loc_prop->setLatitude($latitude);
585 $loc_prop->setLongitude($longitude);
586 $loc_prop->setZoom($zoom);
587 $loc_prop->setAddress($street.",".$city.",".$country);
588
589 $a_form->addItem($loc_prop);
590 }
This class represents a location property in a property form.
static isActivated()
Checks whether Map feature is activated.
static getDefaultSettings()
Get default longitude, latitude and zoom.
getLatitude()
Get Latitude.
getCountry()
Get country (free text)
getLongitude()
Get Longitude.
getLocationZoom()
Get Location Zoom.
getStreet()
get street @access public
getCity()
get city @access public
addItem($a_item)
Add Item (Property, SectionHeader).
global $ilCtrl
Definition: ilias.php:18

References $ilCtrl, ilPropertyFormGUI\addItem(), ilObjUser\getCity(), ilObjUser\getCountry(), ilMapUtil\getDefaultSettings(), ilObjUser\getLatitude(), ilObjUser\getLocationZoom(), ilObjUser\getLongitude(), ilObjUser\getStreet(), and ilMapUtil\isActivated().

Referenced by initPersonalDataForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ downloadPersonalData()

ilPersonalProfileGUI::downloadPersonalData ( )

Download personal data export file.

Parameters

return

Definition at line 1426 of file class.ilPersonalProfileGUI.php.

1427 {
1428 global $ilUser;
1429
1430 $ilUser->sendPersonalDataFile();
1431 }

References $ilUser.

◆ executeCommand()

& ilPersonalProfileGUI::executeCommand ( )

execute command

Definition at line 48 of file class.ilPersonalProfileGUI.php.

49 {
50 global $ilUser, $ilCtrl, $tpl, $ilTabs, $lng;
51
52 $next_class = $this->ctrl->getNextClass();
53
54 switch($next_class)
55 {
56 case "ilpublicuserprofilegui":
57 include_once("./Services/User/classes/class.ilPublicUserProfileGUI.php");
58 $_GET["user_id"] = $ilUser->getId();
59 $pub_profile_gui = new ilPublicUserProfileGUI($_GET["user_id"]);
60 $pub_profile_gui->setBackUrl($ilCtrl->getLinkTarget($this, "showPersonalData"));
61 $ilCtrl->forwardCommand($pub_profile_gui);
62 $tpl->show();
63 break;
64
65 default:
66 $this->setTabs();
67 $cmd = $this->ctrl->getCmd("showPersonalData");
68 $this->$cmd();
69 break;
70 }
71 return true;
72 }
$_GET["client_id"]
GUI class for public user profile presentation.
$cmd
Definition: sahs_server.php:35

References $_GET, $cmd, $ilCtrl, $ilUser, $lng, $tpl, and setTabs().

+ Here is the call graph for this function:

◆ exportPersonalData()

ilPersonalProfileGUI::exportPersonalData ( )

Export personal data.

Definition at line 1411 of file class.ilPersonalProfileGUI.php.

1412 {
1413 global $ilCtrl, $ilUser;
1414
1415 $ilUser->exportPersonalData();
1416 $ilUser->sendPersonalDataFile();
1417 $ilCtrl->redirect($this, "showExportImport");
1418 }

References $ilCtrl, and $ilUser.

◆ getProfilePortfolio()

ilPersonalProfileGUI::getProfilePortfolio ( )
protected

has profile set to a portfolio?

Returns
int

Definition at line 1047 of file class.ilPersonalProfileGUI.php.

1048 {
1049 global $ilUser, $ilSetting;
1050
1051 if ($ilSetting->get('user_portfolios'))
1052 {
1053 include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
1055 }
1056 }
static getDefaultPortfolio($a_user_id)
Get default portfolio of user.
global $ilSetting
Definition: privfeed.php:40

References $ilSetting, $ilUser, and ilObjPortfolio\getDefaultPortfolio().

+ Here is the call graph for this function:

◆ ilPersonalProfileGUI()

ilPersonalProfileGUI::ilPersonalProfileGUI ( )

constructor

Definition at line 25 of file class.ilPersonalProfileGUI.php.

26 {
27 global $ilias, $tpl, $lng, $rbacsystem, $ilCtrl;
28
29 include_once './Services/User/classes/class.ilUserDefinedFields.php';
30 $this->user_defined_fields =& ilUserDefinedFields::_getInstance();
31
32 $this->tpl =& $tpl;
33 $this->lng =& $lng;
34 $this->ilias =& $ilias;
35 $this->ctrl =& $ilCtrl;
36 $this->settings = $ilias->getAllSettings();
37 $lng->loadLanguageModule("jsmath");
38 $lng->loadLanguageModule("pd");
39 $this->upload_error = "";
40 $this->password_error = "";
41 $lng->loadLanguageModule("user");
42 // $ilCtrl->saveParameter($this, "user_page");
43 }
static _getInstance()
Get instance.
redirection script todo: (a better solution should control the processing via a xml file)

References $ilCtrl, $ilias, $lng, $tpl, and ilUserDefinedFields\_getInstance().

+ Here is the call graph for this function:

◆ importPersonalData()

ilPersonalProfileGUI::importPersonalData ( )

Import personal data.

Parameters

return

Definition at line 1506 of file class.ilPersonalProfileGUI.php.

1507 {
1508 global $ilUser, $ilCtrl, $tpl, $ilTabs;
1509
1511 if ($this->form->checkInput())
1512 {
1513 $ilUser->importPersonalData($_FILES["file"],
1514 (int) $_POST["profile_data"],
1515 (int) $_POST["settings"],
1516 (int) $_POST["bookmarks"],
1517 (int) $_POST["notes"],
1518 (int) $_POST["calendar"]
1519 );
1520 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
1521 $ilCtrl->redirect($this, "");
1522 }
1523 else
1524 {
1525 $ilTabs->activateTab("export");
1526 $this->setHeader();
1527 $this->form->setValuesByPost();
1528 $tpl->setContent($this->form->getHtml());
1529 $tpl->show();
1530 }
1531 }
initPersonalDataImportForm()
Init personal data import form.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.

References $_POST, $ilCtrl, $ilUser, $tpl, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ importPersonalDataSelection()

ilPersonalProfileGUI::importPersonalDataSelection ( )

Import personal data selection.

Parameters

return

Definition at line 1439 of file class.ilPersonalProfileGUI.php.

1440 {
1441 global $lng, $ilCtrl, $tpl, $ilTabs;
1442
1443 $ilTabs->activateTab("export");
1444 $this->setHeader();
1445
1447
1448 $tpl->setContent($this->form->getHTML());
1449 $tpl->show();
1450 }

References $ilCtrl, $lng, and $tpl.

◆ initPersonalDataForm()

ilPersonalProfileGUI::initPersonalDataForm ( )

Init personal form.

Definition at line 751 of file class.ilPersonalProfileGUI.php.

752 {
753 global $ilSetting, $lng, $ilUser, $styleDefinition, $rbacreview;
754
755 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
756 $this->form = new ilPropertyFormGUI();
757 $this->form->setFormAction($this->ctrl->getFormAction($this));
758
759 // user defined fields
760 $user_defined_data = $ilUser->getUserDefinedData();
761
762 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
763 {
764 if($definition['field_type'] == UDF_TYPE_TEXT)
765 {
766 $this->input["udf_".$definition['field_id']] =
767 new ilTextInputGUI($definition['field_name'], "udf_".$definition['field_id']);
768 $this->input["udf_".$definition['field_id']]->setMaxLength(255);
769 $this->input["udf_".$definition['field_id']]->setSize(40);
770 }
771 else if($definition['field_type'] == UDF_TYPE_WYSIWYG)
772 {
773 $this->input["udf_".$definition['field_id']] =
774 new ilTextAreaInputGUI($definition['field_name'], "udf_".$definition['field_id']);
775 $this->input["udf_".$definition['field_id']]->setUseRte(true);
776 }
777 else
778 {
779 $options = $this->user_defined_fields->fieldValuesToSelectArray($definition['field_values']);
780 $this->input["udf_".$definition['field_id']] =
781 new ilSelectInputGUI($definition['field_name'], "udf_".$definition['field_id']);
782 $this->input["udf_".$definition['field_id']]->setOptions($options);
783 }
784
785 $value = $user_defined_data["f_".$field_id];
786 $this->input["udf_".$definition['field_id']]->setValue($value);
787
788 if($definition['required'])
789 {
790 $this->input["udf_".$definition['field_id']]->setRequired(true);
791 }
792 if(!$definition['changeable'] && (!$definition['required'] || $value))
793 {
794 $this->input["udf_".$definition['field_id']]->setDisabled(true);
795 }
796
797 // add "please select" if no current value
798 if($definition['field_type'] == UDF_TYPE_SELECT && !$value)
799 {
800 $options = array(""=>$lng->txt("please_select")) + $options;
801 $this->input["udf_".$definition['field_id']]->setOptions($options);
802 }
803 }
804
805 // standard fields
806 include_once("./Services/User/classes/class.ilUserProfile.php");
807 $up = new ilUserProfile();
808 $up->skipField("password");
809 $up->skipGroup("settings");
810 $up->skipGroup("preferences");
811
812 $up->setAjaxCallback(
813 $this->ctrl->getLinkTargetByClass('ilPublicUserProfileGUI', 'doProfileAutoComplete', '', true)
814 );
815
816 // standard fields
817 $up->addStandardFieldsToForm($this->form, $ilUser, $this->input);
818
819 $this->addLocationToForm($this->form, $ilUser);
820
821 $this->form->addCommandButton("savePersonalData", $lng->txt("save"));
822
823 }
const UDF_TYPE_SELECT
const UDF_TYPE_WYSIWYG
addLocationToForm(ilPropertyFormGUI $a_form, ilObjUser $a_user)
Add location fields to form if activated.
This class represents a property form user interface.
This class represents a selection list property in a property form.
This class represents a text area property in a property form.
This class represents a text property in a property form.
Class ilUserProfile.
if(!is_array($argv)) $options

References $ilSetting, $ilUser, $lng, $options, addLocationToForm(), UDF_TYPE_SELECT, UDF_TYPE_TEXT, and UDF_TYPE_WYSIWYG.

Referenced by savePersonalData(), and showPersonalData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initPersonalDataImportForm()

ilPersonalProfileGUI::initPersonalDataImportForm ( )

Init personal data import form.

Parameters

return

Definition at line 1458 of file class.ilPersonalProfileGUI.php.

1459 {
1460 global $lng, $ilCtrl;
1461
1462 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1463 $this->form = new ilPropertyFormGUI();
1464
1465 // input file
1466 $fi = new ilFileInputGUI($lng->txt("file"), "file");
1467 $fi->setRequired(true);
1468 $fi->setSuffixes(array("zip"));
1469 $this->form->addItem($fi);
1470
1471 // profile data
1472 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_profile_data"), "profile_data");
1473 $this->form->addItem($cb);
1474
1475 // settings
1476 $cb = new ilCheckboxInputGUI($this->lng->txt("settings"), "settings");
1477 $this->form->addItem($cb);
1478
1479 // bookmarks
1480 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_bookmarks"), "bookmarks");
1481 $this->form->addItem($cb);
1482
1483 // personal notes
1484 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_notes"), "notes");
1485 $this->form->addItem($cb);
1486
1487 // calendar entries
1488 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_private_calendars"), "calendar");
1489 $this->form->addItem($cb);
1490
1491 $this->form->addCommandButton("importPersonalData", $lng->txt("import"));
1492 $this->form->addCommandButton("showExportImport", $lng->txt("cancel"));
1493
1494 $this->form->setTitle($lng->txt("pd_import_personal_data"));
1495 $this->form->setFormAction($ilCtrl->getFormAction($this));
1496
1497 }
This class represents a checkbox property in a property form.
This class represents a file property in a property form.

References $ilCtrl, and $lng.

◆ initPublicProfileForm()

ilPersonalProfileGUI::initPublicProfileForm ( )

Init public profile form.

Parameters
int$a_modeEdit Mode

Definition at line 1063 of file class.ilPersonalProfileGUI.php.

1064 {
1065 global $lng, $ilUser, $ilSetting;
1066
1067 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1068 $this->form = new ilPropertyFormGUI();
1069
1070 $this->form->setTitle($lng->txt("public_profile"));
1071 $this->form->setDescription($lng->txt("user_public_profile_info"));
1072 $this->form->setFormAction($this->ctrl->getFormAction($this));
1073
1074 $portfolio_id = $this->getProfilePortfolio();
1075
1076 if(!$portfolio_id)
1077 {
1078 // Activate public profile
1079 $radg = new ilRadioGroupInputGUI($lng->txt("user_activate_public_profile"), "public_profile");
1080 $info = $this->lng->txt("user_activate_public_profile_info");
1081 $pub_prof = in_array($ilUser->prefs["public_profile"], array("y", "n", "g"))
1082 ? $ilUser->prefs["public_profile"]
1083 : "n";
1084 if (!$ilSetting->get('enable_global_profiles') && $pub_prof == "g")
1085 {
1086 $pub_prof = "y";
1087 }
1088 $radg->setValue($pub_prof);
1089 $op1 = new ilRadioOption($lng->txt("usr_public_profile_disabled"), "n",$lng->txt("usr_public_profile_disabled_info"));
1090 $radg->addOption($op1);
1091 $op2 = new ilRadioOption($lng->txt("usr_public_profile_logged_in"), "y");
1092 $radg->addOption($op2);
1093 if ($ilSetting->get('enable_global_profiles'))
1094 {
1095 $op3 = new ilRadioOption($lng->txt("usr_public_profile_global"), "g");
1096 $radg->addOption($op3);
1097 }
1098 $this->form->addItem($radg);
1099
1100 // #11773
1101 if ($ilSetting->get('user_portfolios'))
1102 {
1103 // #10826
1104 $prtf = "<br />".$lng->txt("user_profile_portfolio");
1105 $prtf .= "<br /><a href=\"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToPortfolio\">&raquo; ".
1106 $lng->txt("user_portfolios")."</a>";
1107 $info .= $prtf;
1108 }
1109
1110 $radg->setInfo($info);
1111 }
1112 else
1113 {
1114 $prtf = $lng->txt("user_profile_portfolio_selected");
1115 $prtf .= "<br /><a href=\"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToPortfolio&prt_id=".$portfolio_id."\">&raquo; ".
1116 $lng->txt("portfolio")."</a>";
1117
1118 $info = new ilCustomInputGUI($lng->txt("user_activate_public_profile"));
1119 $info->setHTML($prtf);
1120 $this->form->addItem($info);
1121 }
1122
1123 $this->showPublicProfileFields($this->form, $ilUser->prefs);
1124
1125 $this->form->addCommandButton("savePublicProfile", $lng->txt("save"));
1126 }
This class represents a custom property in a property form.
showPublicProfileFields(ilPropertyformGUI $form, array $prefs, $parent=null, $anonymized=false)
Add fields to form.
getProfilePortfolio()
has profile set to a portfolio?
This class represents a property in a property form.
This class represents an option in a radio group.

References $ilSetting, $ilUser, and $lng.

◆ removeUserPicture()

ilPersonalProfileGUI::removeUserPicture ( )

remove user image

Definition at line 195 of file class.ilPersonalProfileGUI.php.

196 {
197 global $ilUser;
198
199 $ilUser->removeUserPicture();
200
201 $this->saveProfile();
202 }
saveProfile()
save user profile data

References $ilUser, and saveProfile().

+ Here is the call graph for this function:

◆ savePersonalData()

ilPersonalProfileGUI::savePersonalData ( )

Save personal data form.

Definition at line 829 of file class.ilPersonalProfileGUI.php.

830 {
831 global $tpl, $lng, $ilCtrl, $ilUser, $ilSetting, $ilAuth;
832
833 $this->initPersonalDataForm();
834 if ($this->form->checkInput())
835 {
836 $form_valid = true;
837
838 // if form field name differs from setter
839 $map = array(
840 "firstname" => "FirstName",
841 "lastname" => "LastName",
842 "title" => "UTitle",
843 "sel_country" => "SelectedCountry",
844 "phone_office" => "PhoneOffice",
845 "phone_home" => "PhoneHome",
846 "phone_mobile" => "PhoneMobile",
847 "referral_comment" => "Comment",
848 "interests_general" => "GeneralInterests",
849 "interests_help_offered" => "OfferingHelp",
850 "interests_help_looking" => "LookingForHelp"
851 );
852 include_once("./Services/User/classes/class.ilUserProfile.php");
853 $up = new ilUserProfile();
854 foreach($up->getStandardFields() as $f => $p)
855 {
856 // if item is part of form, it is currently valid (if not disabled)
857 $item = $this->form->getItemByPostVar("usr_".$f);
858 if($item && !$item->getDisabled())
859 {
860 $value = $this->form->getInput("usr_".$f);
861 switch($f)
862 {
863 case "birthday":
864 if (is_array($value))
865 {
866 if (is_array($value['date']))
867 {
868 if (($value['d'] > 0) && ($value['m'] > 0) && ($value['y'] > 0))
869 {
870 $ilUser->setBirthday(sprintf("%04d-%02d-%02d", $value['y'], $value['m'], $value['d']));
871 }
872 else
873 {
874 $ilUser->setBirthday("");
875 }
876 }
877 else
878 {
879 $ilUser->setBirthday($value['date']);
880 }
881 }
882 break;
883
884 default:
885 $m = ucfirst($f);
886 if(isset($map[$f]))
887 {
888 $m = $map[$f];
889 }
890 $ilUser->{"set".$m}($value);
891 break;
892 }
893 }
894 }
895 $ilUser->setFullname();
896
897 // set instant messengers
898 if ($this->workWithUserSetting("instant_messengers"))
899 {
900 $ilUser->setInstantMessengerId('icq', $this->form->getInput("usr_im_icq"));
901 $ilUser->setInstantMessengerId('yahoo', $this->form->getInput("usr_im_yahoo"));
902 $ilUser->setInstantMessengerId('msn', $this->form->getInput("usr_im_msn"));
903 $ilUser->setInstantMessengerId('aim', $this->form->getInput("usr_im_aim"));
904 $ilUser->setInstantMessengerId('skype', $this->form->getInput("usr_im_skype"));
905 $ilUser->setInstantMessengerId('jabber', $this->form->getInput("usr_im_jabber"));
906 $ilUser->setInstantMessengerId('voip', $this->form->getInput("usr_im_voip"));
907 }
908
909 // check map activation
910 include_once("./Services/Maps/classes/class.ilMapUtil.php");
912 {
913 // #17619 - proper escaping
914 $location = $this->form->getInput("location");
915 $lat = ilUtil::stripSlashes($location["latitude"]);
916 $long = ilUtil::stripSlashes($location["longitude"]);
917 $zoom = ilUtil::stripSlashes($location["zoom"]);
918 $ilUser->setLatitude(is_numeric($lat) ? $lat : null);
919 $ilUser->setLongitude(is_numeric($long) ? $long : null);
920 $ilUser->setLocationZoom(is_numeric($zoom) ? $zoom : null);
921 }
922
923 // Set user defined data
924 $defs = $this->user_defined_fields->getVisibleDefinitions();
925 $udf = array();
926 foreach ($defs as $definition)
927 {
928 $f = "udf_".$definition['field_id'];
929 $item = $this->form->getItemByPostVar($f);
930 if ($item && !$item->getDisabled())
931 {
932 $udf[$definition['field_id']] = $this->form->getInput($f);
933 }
934 }
935 $ilUser->setUserDefinedData($udf);
936
937 // if loginname is changeable -> validate
938 $un = $this->form->getInput('username');
939 if((int)$ilSetting->get('allow_change_loginname') &&
940 $un != $ilUser->getLogin())
941 {
942 if(!strlen($un) || !ilUtil::isLogin($un))
943 {
944 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
945 $this->form->getItemByPostVar('username')->setAlert($this->lng->txt('login_invalid'));
946 $form_valid = false;
947 }
948 else if(ilObjUser::_loginExists($un, $ilUser->getId()))
949 {
950 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
951 $this->form->getItemByPostVar('username')->setAlert($this->lng->txt('loginname_already_exists'));
952 $form_valid = false;
953 }
954 else
955 {
956 $ilUser->setLogin($un);
957
958 try
959 {
960 $ilUser->updateLogin($ilUser->getLogin());
961 $ilAuth->setAuth($ilUser->getLogin());
962 $ilAuth->start();
963 }
964 catch (ilUserException $e)
965 {
966 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
967 $this->form->getItemByPostVar('username')->setAlert($e->getMessage());
968 $form_valid = false;
969 }
970 }
971 }
972
973 // everthing's ok. save form data
974 if ($form_valid)
975 {
976 $this->uploadUserPicture();
977
978 // profile ok
979 $ilUser->setProfileIncomplete(false);
980
981 // save user data & object_data
982 $ilUser->setTitle($ilUser->getFullname());
983 $ilUser->setDescription($ilUser->getEmail());
984
985 $ilUser->update();
986
987 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
988
989 if(ilSession::get('orig_request_target'))
990 {
991 $target = ilSession::get('orig_request_target');
992 ilSession::set('orig_request_target', '');
993 ilUtil::redirect($target);
994 }
995 else if($redirect = $_SESSION['profile_complete_redirect'])
996 {
997 unset($_SESSION['profile_complete_redirect']);
999 }
1000 else
1001 {
1002 $ilCtrl->redirect($this, "showPersonalData");
1003 }
1004 }
1005 }
1006
1007 $this->form->setValuesByPost();
1008 $this->showPersonalData(true);
1009 }
$location
Definition: buildRTE.php:44
static _loginExists($a_login, $a_user_id=0)
check if a login name already exists You may exclude a user from the check by giving his user id as 2...
workWithUserSetting($setting)
Returns TRUE if working with the given user setting is allowed, FALSE otherwise.
showPersonalData($a_no_init=false)
Personal data form.
initPersonalDataForm()
Init personal form.
uploadUserPicture()
Upload user image.
static set($a_var, $a_val)
Set a value.
static get($a_var)
Get a value.
Class for user related exception handling in ILIAS.
isLogin($a_login)
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$redirect
Definition: index.php:18

References $_SESSION, $ilCtrl, $ilSetting, $ilUser, $lng, $location, $redirect, $tpl, ilObjUser\_loginExists(), ilSession\get(), initPersonalDataForm(), ilMapUtil\isActivated(), ilUtil\isLogin(), ilUtil\redirect(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilSession\set(), ilUtil\stripSlashes(), uploadUserPicture(), and workWithUserSetting().

+ Here is the call graph for this function:

◆ saveProfile()

ilPersonalProfileGUI::saveProfile ( )

save user profile data

Definition at line 209 of file class.ilPersonalProfileGUI.php.

210 {
211 global $ilUser ,$ilSetting, $ilAuth;
212
213 //init checking var
214 $form_valid = true;
215
216 // testing by ratana ty:
217 // if people check on check box it will
218 // write some datata to table usr_pref
219 // if check on Public Profile
220 if (($_POST["chk_pub"])=="on")
221 {
222 $ilUser->setPref("public_profile","y");
223 }
224 else
225 {
226 $ilUser->setPref("public_profile","n");
227 }
228
229 // if check on Institute
230 $val_array = array("institution", "department", "upload", "street",
231 "zip", "city", "country", "phone_office", "phone_home", "phone_mobile",
232 "fax", "email", "hobby", "matriculation");
233
234 // set public profile preferences
235 foreach($val_array as $key => $value)
236 {
237 if (($_POST["chk_".$value]) == "on")
238 {
239 $ilUser->setPref("public_".$value,"y");
240 }
241 else
242 {
243 $ilUser->setPref("public_".$value,"n");
244 }
245 }
246
247 $d_set = new ilSetting("delicious");
248 if ($d_set->get("user_profile"))
249 {
250 if (($_POST["chk_delicious"]) == "on")
251 {
252 $ilUser->setPref("public_delicious","y");
253 }
254 else
255 {
256 $ilUser->setPref("public_delicious","n");
257 }
258 }
259
260
261 // check dynamically required fields
262 foreach($this->settings as $key => $val)
263 {
264 if (substr($key,0,8) == "require_")
265 {
266 $require_keys[] = substr($key,8);
267 }
268 }
269
270 foreach($require_keys as $key => $val)
271 {
272 // exclude required system and registration-only fields
273 $system_fields = array("login", "default_role", "passwd", "passwd2");
274 if (!in_array($val, $system_fields))
275 {
276 if ($this->workWithUserSetting($val))
277 {
278 if (isset($this->settings["require_" . $val]) && $this->settings["require_" . $val])
279 {
280 if (empty($_POST["usr_" . $val]))
281 {
282 ilUtil::sendFailure($this->lng->txt("fill_out_all_required_fields") . ": " . $this->lng->txt($val));
283 $form_valid = false;
284 }
285 }
286 }
287 }
288 }
289
290 // Check user defined required fields
291 if($form_valid and !$this->__checkUserDefinedRequiredFields())
292 {
293 ilUtil::sendFailure($this->lng->txt("fill_out_all_required_fields"));
294 $form_valid = false;
295 }
296
297 // check email
298 if ($this->workWithUserSetting("email"))
299 {
300 if (!ilUtil::is_email($_POST["usr_email"]) and !empty($_POST["usr_email"]) and $form_valid)
301 {
302 ilUtil::sendFailure($this->lng->txt("email_not_valid"));
303 $form_valid = false;
304 }
305 }
306
307 //update user data (not saving!)
308 if ($this->workWithUserSetting("firstname"))
309 {
310 $ilUser->setFirstName(ilUtil::stripSlashes($_POST["usr_firstname"]));
311 }
312 if ($this->workWithUserSetting("lastname"))
313 {
314 $ilUser->setLastName(ilUtil::stripSlashes($_POST["usr_lastname"]));
315 }
316 if ($this->workWithUserSetting("gender"))
317 {
318 $ilUser->setGender($_POST["usr_gender"]);
319 }
320 if ($this->workWithUserSetting("title"))
321 {
322 $ilUser->setUTitle(ilUtil::stripSlashes($_POST["usr_title"]));
323 }
324 $ilUser->setFullname();
325 if ($this->workWithUserSetting("institution"))
326 {
327 $ilUser->setInstitution(ilUtil::stripSlashes($_POST["usr_institution"]));
328 }
329 if ($this->workWithUserSetting("department"))
330 {
331 $ilUser->setDepartment(ilUtil::stripSlashes($_POST["usr_department"]));
332 }
333 if ($this->workWithUserSetting("street"))
334 {
335 $ilUser->setStreet(ilUtil::stripSlashes($_POST["usr_street"]));
336 }
337 if ($this->workWithUserSetting("zipcode"))
338 {
339 $ilUser->setZipcode(ilUtil::stripSlashes($_POST["usr_zipcode"]));
340 }
341 if ($this->workWithUserSetting("city"))
342 {
343 $ilUser->setCity(ilUtil::stripSlashes($_POST["usr_city"]));
344 }
345 if ($this->workWithUserSetting("country"))
346 {
347 $ilUser->setCountry(ilUtil::stripSlashes($_POST["usr_country"]));
348 }
349 if ($this->workWithUserSetting("phone_office"))
350 {
351 $ilUser->setPhoneOffice(ilUtil::stripSlashes($_POST["usr_phone_office"]));
352 }
353 if ($this->workWithUserSetting("phone_home"))
354 {
355 $ilUser->setPhoneHome(ilUtil::stripSlashes($_POST["usr_phone_home"]));
356 }
357 if ($this->workWithUserSetting("phone_mobile"))
358 {
359 $ilUser->setPhoneMobile(ilUtil::stripSlashes($_POST["usr_phone_mobile"]));
360 }
361 if ($this->workWithUserSetting("fax"))
362 {
363 $ilUser->setFax(ilUtil::stripSlashes($_POST["usr_fax"]));
364 }
365 if ($this->workWithUserSetting("email"))
366 {
367 $ilUser->setEmail(ilUtil::stripSlashes($_POST["usr_email"]));
368 }
369 if ($this->workWithUserSetting("hobby"))
370 {
371 $ilUser->setHobby(ilUtil::stripSlashes($_POST["usr_hobby"]));
372 }
373 if ($this->workWithUserSetting("referral_comment"))
374 {
375 $ilUser->setComment(ilUtil::stripSlashes($_POST["usr_referral_comment"]));
376 }
377 if ($this->workWithUserSetting("matriculation"))
378 {
379 $ilUser->setMatriculation(ilUtil::stripSlashes($_POST["usr_matriculation"]));
380 }
381
382 // delicious
383 $d_set = new ilSetting("delicious");
384 if ($d_set->get("user_profile"))
385 {
386 $ilUser->setDelicious(ilUtil::stripSlashes($_POST["usr_delicious"]));
387 }
388
389 // set instant messengers
390 if ($this->workWithUserSetting("instant_messengers"))
391 {
392 $ilUser->setInstantMessengerId('icq',ilUtil::stripSlashes($_POST["usr_im_icq"]));
393 $ilUser->setInstantMessengerId('yahoo',ilUtil::stripSlashes($_POST["usr_im_yahoo"]));
394 $ilUser->setInstantMessengerId('msn',ilUtil::stripSlashes($_POST["usr_im_msn"]));
395 $ilUser->setInstantMessengerId('aim',ilUtil::stripSlashes($_POST["usr_im_aim"]));
396 $ilUser->setInstantMessengerId('skype',ilUtil::stripSlashes($_POST["usr_im_skype"]));
397 $ilUser->setInstantMessengerId('jabber',ilUtil::stripSlashes($_POST["usr_im_jabber"]));
398 $ilUser->setInstantMessengerId('voip',ilUtil::stripSlashes($_POST["usr_im_voip"]));
399 }
400
401 // Set user defined data
402 $ilUser->setUserDefinedData($_POST['udf']);
403
404 // everthing's ok. save form data
405 if ($form_valid)
406 {
407 // init reload var. page should only be reloaded if skin or style were changed
408 $reload = false;
409
410 if ($this->workWithUserSetting("skin_style"))
411 {
412 //set user skin and style
413 if ($_POST["usr_skin_style"] != "")
414 {
415 $sknst = explode(":", $_POST["usr_skin_style"]);
416
417 if ($ilUser->getPref("style") != $sknst[1] ||
418 $ilUser->getPref("skin") != $sknst[0])
419 {
420 $ilUser->setPref("skin", $sknst[0]);
421 $ilUser->setPref("style", $sknst[1]);
422 $reload = true;
423 }
424 }
425 }
426
427 if ($this->workWithUserSetting("language"))
428 {
429 // reload page if language was changed
430 //if ($_POST["usr_language"] != "" and $_POST["usr_language"] != $_SESSION['lang'])
431 // (this didn't work as expected, alex)
432 if ($_POST["usr_language"] != $ilUser->getLanguage())
433 {
434 $reload = true;
435 }
436
437 // set user language
438 $ilUser->setLanguage($_POST["usr_language"]);
439
440 }
441 if ($this->workWithUserSetting("hits_per_page"))
442 {
443 // set user hits per page
444 if ($_POST["hits_per_page"] != "")
445 {
446 $ilUser->setPref("hits_per_page",$_POST["hits_per_page"]);
447 }
448 }
449
450 // set show users online
451 if ($this->workWithUserSetting("show_users_online"))
452 {
453 $ilUser->setPref("show_users_online", $_POST["show_users_online"]);
454 }
455
456 // set hide own online_status
457 if ($this->workWithUserSetting("hide_own_online_status"))
458 {
459 if ($_POST["chk_hide_own_online_status"] != "")
460 {
461 $ilUser->setPref("hide_own_online_status","y");
462 }
463 else
464 {
465 $ilUser->setPref("hide_own_online_status","n");
466 }
467 }
468
469 // personal desktop items in news block
470/* Subscription Concept is abandonded for now, we show all news of pd items (Alex)
471 if ($_POST["pd_items_news"] != "")
472 {
473 $ilUser->setPref("pd_items_news","y");
474 }
475 else
476 {
477 $ilUser->setPref("pd_items_news","n");
478 }
479*/
480
481 // profile ok
482 $ilUser->setProfileIncomplete(false);
483
484 // save user data & object_data
485 $ilUser->setTitle($ilUser->getFullname());
486 $ilUser->setDescription($ilUser->getEmail());
487
488 $ilUser->update();
489
490 // update lucene index
491 include_once './Services/Search/classes/Lucene/class.ilLuceneIndexer.php';
492 ilLuceneIndexer::updateLuceneIndex(array($GLOBALS['ilUser']->getId()));
493
494
495 // reload page only if skin or style were changed
496 // feedback
497 if (!empty($this->password_error))
498 {
499 ilUtil::sendFailure($this->password_error,true);
500 }
501 elseif (!empty($this->upload_error))
502 {
503 ilUtil::sendFailure($this->upload_error,true);
504 }
505 else if ($reload)
506 {
507 // feedback
508 ilUtil::sendSuccess($this->lng->txt("saved_successfully"),true);
509 $this->ctrl->redirect($this, "");
510 //$this->tpl->setVariable("RELOAD","<script language=\"Javascript\">\ntop.location.href = \"./start.php\";\n</script>\n");
511 }
512 else
513 {
514 ilUtil::sendSuccess($this->lng->txt("saved_successfully"),true);
515 }
516 }
517
518 $this->showProfile();
519 }
static updateLuceneIndex($a_obj_ids)
Update lucene index.
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
$GLOBALS['ct_recipient']

References $_POST, $GLOBALS, $ilSetting, $ilUser, __checkUserDefinedRequiredFields(), ilUtil\is_email(), ilUtil\sendFailure(), ilUtil\sendSuccess(), showProfile(), ilUtil\stripSlashes(), ilLuceneIndexer\updateLuceneIndex(), and workWithUserSetting().

Referenced by removeUserPicture().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ savePublicProfile()

ilPersonalProfileGUI::savePublicProfile ( )

Save public profile form.

Definition at line 1289 of file class.ilPersonalProfileGUI.php.

1290 {
1291 global $tpl, $lng, $ilCtrl, $ilUser;
1292
1293 $this->initPublicProfileForm();
1294 if ($this->form->checkInput())
1295 {
1296 // with active portfolio no options are presented
1297 if(isset($_POST["public_profile"]))
1298 {
1299 $ilUser->setPref("public_profile", $_POST["public_profile"]);
1300 }
1301
1302 // if check on Institute
1303 $val_array = array("title", "birthday", "gender", "institution", "department", "upload", "street",
1304 "zipcode", "city", "country", "sel_country", "phone_office", "phone_home", "phone_mobile",
1305 "fax", "email", "hobby", "matriculation", "location",
1306 "interests_general", "interests_help_offered", "interests_help_looking");
1307
1308 // set public profile preferences
1309 foreach($val_array as $key => $value)
1310 {
1311 if (($_POST["chk_".$value]))
1312 {
1313 $ilUser->setPref("public_".$value,"y");
1314 }
1315 else
1316 {
1317 $ilUser->setPref("public_".$value,"n");
1318 }
1319 }
1320
1321 $im_arr = array("icq","yahoo","msn","aim","skype","jabber","voip");
1322 if ($this->userSettingVisible("instant_messengers"))
1323 {
1324 foreach ($im_arr as $im)
1325 {
1326 if (($_POST["chk_im_".$im]))
1327 {
1328 $ilUser->setPref("public_im_".$im,"y");
1329 }
1330 else
1331 {
1332 $ilUser->setPref("public_im_".$im,"n");
1333 }
1334 }
1335 }
1336
1337// $d_set = new ilSetting("delicious");
1338// if ($d_set->get("user_profile"))
1339// {
1340 if (($_POST["chk_delicious"]))
1341 {
1342 $ilUser->setPref("public_delicious","y");
1343 }
1344 else
1345 {
1346 $ilUser->setPref("public_delicious","n");
1347 }
1348// }
1349
1350 // additional defined user data fields
1351 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
1352 {
1353 if (($_POST["chk_udf_".$definition["field_id"]]))
1354 {
1355 $ilUser->setPref("public_udf_".$definition["field_id"], "y");
1356 }
1357 else
1358 {
1359 $ilUser->setPref("public_udf_".$definition["field_id"], "n");
1360 }
1361 }
1362
1363 $ilUser->update();
1364
1365 // update lucene index
1366 include_once './Services/Search/classes/Lucene/class.ilLuceneIndexer.php';
1367 ilLuceneIndexer::updateLuceneIndex(array((int) $GLOBALS['ilUser']->getId()));
1368
1369 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1370 $ilCtrl->redirect($this, "showPublicProfile");
1371 }
1372 $this->form->setValuesByPost();
1373 $tpl->showPublicProfile(true);
1374 }
initPublicProfileForm()
Init public profile form.

References $_POST, $GLOBALS, $ilCtrl, $ilUser, $lng, $tpl, ilUtil\sendSuccess(), and ilLuceneIndexer\updateLuceneIndex().

+ Here is the call graph for this function:

◆ setHeader()

ilPersonalProfileGUI::setHeader ( )

Set header.

Definition at line 710 of file class.ilPersonalProfileGUI.php.

711 {
712 $this->tpl->setTitle($this->lng->txt('personal_profile'));
713 }

Referenced by showPersonalData().

+ Here is the caller graph for this function:

◆ setTabs()

ilPersonalProfileGUI::setTabs ( )

Definition at line 593 of file class.ilPersonalProfileGUI.php.

594 {
595 global $ilTabs, $ilUser, $ilHelp;
596
597 $ilHelp->setScreenIdComponent("user");
598
599 // personal data
600 $ilTabs->addTab("personal_data",
601 $this->lng->txt("personal_data"),
602 $this->ctrl->getLinkTarget($this, "showPersonalData"));
603
604 // public profile
605 $ilTabs->addTab("public_profile",
606 $this->lng->txt("public_profile"),
607 $this->ctrl->getLinkTarget($this, "showPublicProfile"));
608
609 // export
610 $ilTabs->addTab("export",
611 $this->lng->txt("export")."/".$this->lng->txt("import"),
612 $this->ctrl->getLinkTarget($this, "showExportImport"));
613
614 if($ilUser->getPref("public_profile") != "n" || $this->getProfilePortfolio())
615 {
616 // profile preview
617 $ilTabs->addNonTabbedLink("profile_preview",
618 $this->lng->txt("user_profile_preview"),
619 $this->ctrl->getLinkTargetByClass("ilpublicuserprofilegui", "view"));
620 }
621 }

References $ilUser.

Referenced by executeCommand().

+ Here is the caller graph for this function:

◆ showExportImport()

ilPersonalProfileGUI::showExportImport ( )

Show export/import.

Parameters

return

Definition at line 1382 of file class.ilPersonalProfileGUI.php.

1383 {
1384 global $ilToolbar, $ilCtrl, $tpl, $ilTabs, $ilUser;
1385
1386 $ilTabs->activateTab("export");
1387 $this->setHeader();
1388
1389 $ilToolbar->addButton($this->lng->txt("pd_export_profile"),
1390 $ilCtrl->getLinkTarget($this, "exportPersonalData"));
1391
1392 $exp_file = $ilUser->getPersonalDataExportFile();
1393 if ($exp_file != "")
1394 {
1395 $ilToolbar->addSeparator();
1396 $ilToolbar->addButton($this->lng->txt("pd_download_last_export_file"),
1397 $ilCtrl->getLinkTarget($this, "downloadPersonalData"));
1398 }
1399
1400 $ilToolbar->addSeparator();
1401 $ilToolbar->addButton($this->lng->txt("pd_import_personal_data"),
1402 $ilCtrl->getLinkTarget($this, "importPersonalDataSelection"));
1403
1404 $tpl->show();
1405 }

References $ilCtrl, $ilUser, and $tpl.

◆ showPersonalData()

ilPersonalProfileGUI::showPersonalData (   $a_no_init = false)

Personal data form.

Definition at line 724 of file class.ilPersonalProfileGUI.php.

725 {
726 global $ilUser, $styleDefinition, $rbacreview, $ilias, $lng, $ilSetting, $ilTabs;
727
728 $ilTabs->activateTab("personal_data");
729
730 $settings = $ilias->getAllSettings();
731
732 $this->setHeader();
733
734 if (!$a_no_init)
735 {
736 $this->initPersonalDataForm();
737 // catch feedback message
738 if ($ilUser->getProfileIncomplete())
739 {
740 ilUtil::sendInfo($lng->txt("profile_incomplete"));
741 }
742 }
743 $this->tpl->setContent($this->form->getHTML());
744
745 $this->tpl->show();
746 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $ilias, $ilSetting, $ilUser, $lng, initPersonalDataForm(), ilUtil\sendInfo(), and setHeader().

Referenced by showProfile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showProfile()

ilPersonalProfileGUI::showProfile ( )

show profile form

/OLD IMPLEMENTATION DEPRECATED

Definition at line 526 of file class.ilPersonalProfileGUI.php.

527 {
528 $this->showPersonalData();
529 }

References showPersonalData().

Referenced by saveProfile().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showPublicProfile()

ilPersonalProfileGUI::showPublicProfile (   $a_no_init = false)

Public profile form.

Definition at line 1020 of file class.ilPersonalProfileGUI.php.

1021 {
1022 global $ilUser, $lng, $ilSetting, $ilTabs;
1023
1024 $ilTabs->activateTab("public_profile");
1025
1026 $this->setHeader();
1027
1028 if (!$a_no_init)
1029 {
1030 $this->initPublicProfileForm();
1031 }
1032
1033 $ptpl = new ilTemplate("tpl.edit_personal_profile.html", true, true, "Services/User");
1034 $ptpl->setVariable("FORM", $this->form->getHTML());
1035 include_once("./Services/User/classes/class.ilPublicUserProfileGUI.php");
1036 $pub_profile = new ilPublicUserProfileGUI($ilUser->getId());
1037 $ptpl->setVariable("PREVIEW", $pub_profile->getEmbeddable());
1038 $this->tpl->setContent($ptpl->get());
1039 $this->tpl->show();
1040 }
special template class to simplify handling of ITX/PEAR

References $ilSetting, $ilUser, and $lng.

◆ showPublicProfileFields()

ilPersonalProfileGUI::showPublicProfileFields ( ilPropertyformGUI  $form,
array  $prefs,
  $parent = null,
  $anonymized = false 
)

Add fields to form.

Parameters
ilPropertyformGUI$form
array$prefs
object$parent
bool$a_anonymized

Definition at line 1136 of file class.ilPersonalProfileGUI.php.

1137 {
1138 global $ilUser;
1139
1140 $birthday = $ilUser->getBirthday();
1141 if($birthday)
1142 {
1143 $birthday = ilDatePresentation::formatDate(new ilDate($birthday, IL_CAL_DATE));
1144 }
1145 $gender = $ilUser->getGender();
1146 if($gender)
1147 {
1148 $gender = $this->lng->txt("gender_".$gender);
1149 }
1150
1151 if ($ilUser->getSelectedCountry() != "")
1152 {
1153 $this->lng->loadLanguageModule("meta");
1154 $txt_sel_country = $this->lng->txt("meta_c_".$ilUser->getSelectedCountry());
1155 }
1156
1157 // profile picture
1158 $pic = ilObjUser::_getPersonalPicturePath($ilUser->getId(), "xsmall", true, true);
1159 if($pic)
1160 {
1161 $pic = "<img src=\"".$pic."\" />";
1162 }
1163
1164 // personal data
1165 $val_array = array(
1166 "title" => $ilUser->getUTitle(),
1167 "birthday" => $birthday,
1168 "gender" => $gender,
1169 "upload" => $pic,
1170 "interests_general" => $ilUser->getGeneralInterestsAsText(),
1171 "interests_help_offered" => $ilUser->getOfferingHelpAsText(),
1172 "interests_help_looking" => $ilUser->getLookingForHelpAsText(),
1173 "institution" => $ilUser->getInstitution(),
1174 "department" => $ilUser->getDepartment(),
1175 "street" => $ilUser->getStreet(),
1176 "zipcode" => $ilUser->getZipcode(),
1177 "city" => $ilUser->getCity(),
1178 "country" => $ilUser->getCountry(),
1179 "sel_country" => $txt_sel_country,
1180 "phone_office" => $ilUser->getPhoneOffice(),
1181 "phone_home" => $ilUser->getPhoneHome(),
1182 "phone_mobile" => $ilUser->getPhoneMobile(),
1183 "fax" => $ilUser->getFax(),
1184 "email" => $ilUser->getEmail(),
1185 "hobby" => $ilUser->getHobby(),
1186 "matriculation" => $ilUser->getMatriculation(),
1187 "delicious" => $ilUser->getDelicious()
1188 );
1189
1190 // location
1191 include_once("./Services/Maps/classes/class.ilMapUtil.php");
1193 {
1194 $val_array["location"] = "";
1195 }
1196
1197 foreach($val_array as $key => $value)
1198 {
1199 if($anonymized)
1200 {
1201 $value = null;
1202 }
1203
1204 if ($this->userSettingVisible($key))
1205 {
1206 // public setting
1207 if ($key == "upload")
1208 {
1209 $cb = new ilCheckboxInputGUI($this->lng->txt("personal_picture"), "chk_".$key);
1210 }
1211 else
1212 {
1213 $cb = new ilCheckboxInputGUI($this->lng->txt($key), "chk_".$key);
1214 }
1215 if ($prefs["public_".$key] == "y")
1216 {
1217 $cb->setChecked(true);
1218 }
1219 //$cb->setInfo($value);
1220 $cb->setOptionTitle($value);
1221
1222 if(!$parent)
1223 {
1224 $form->addItem($cb);
1225 }
1226 else
1227 {
1228 $parent->addSubItem($cb);
1229 }
1230 }
1231 }
1232
1233 $im_arr = array("icq","yahoo","msn","aim","skype","jabber","voip");
1234 if ($this->userSettingVisible("instant_messengers"))
1235 {
1236 foreach ($im_arr as $im)
1237 {
1238 // public setting
1239 $cb = new ilCheckboxInputGUI($this->lng->txt("im_".$im), "chk_im_".$im);
1240 //$cb->setInfo($ilUser->getInstantMessengerId($im));
1241 $cb->setOptionTitle($ilUser->getInstantMessengerId($im));
1242 if ($prefs["public_im_".$im] != "n")
1243 {
1244 $cb->setChecked(true);
1245 }
1246
1247 if(!$parent)
1248 {
1249 $form->addItem($cb);
1250 }
1251 else
1252 {
1253 $parent->addSubItem($cb);
1254 }
1255 }
1256 }
1257
1258 // additional defined user data fields
1259 $user_defined_data = array();
1260 if(!$anonymized)
1261 {
1262 $user_defined_data = $ilUser->getUserDefinedData();
1263 }
1264 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
1265 {
1266 // public setting
1267 $cb = new ilCheckboxInputGUI($definition["field_name"], "chk_udf_".$definition["field_id"]);
1268 $cb->setOptionTitle($user_defined_data["f_".$definition["field_id"]]);
1269 if ($prefs["public_udf_".$definition["field_id"]] == "y")
1270 {
1271 $cb->setChecked(true);
1272 }
1273
1274 if(!$parent)
1275 {
1276 $form->addItem($cb);
1277 }
1278 else
1279 {
1280 $parent->addSubItem($cb);
1281 }
1282 }
1283 }
const IL_CAL_DATE
static formatDate(ilDateTime $date)
Format a date @access public.
Class for single dates.
static _getPersonalPicturePath($a_usr_id, $a_size="small", $a_force_pic=false, $a_prevent_no_photo_image=false)
Get path to personal picture.

References $ilUser, ilObjUser\_getPersonalPicturePath(), ilDatePresentation\formatDate(), IL_CAL_DATE, and ilMapUtil\isActivated().

+ Here is the call graph for this function:

◆ uploadUserPicture()

ilPersonalProfileGUI::uploadUserPicture ( )

Upload user image.

Definition at line 125 of file class.ilPersonalProfileGUI.php.

126 {
127 global $ilUser;
128
129 if ($this->workWithUserSetting("upload"))
130 {
131 if (!$this->form->hasFileUpload("userfile"))
132 {
133 if ($this->form->getItemByPostVar("userfile")->getDeletionFlag())
134 {
135 $ilUser->removeUserPicture();
136 }
137 return;
138 }
139 else
140 {
141 $webspace_dir = ilUtil::getWebspaceDir();
142 $image_dir = $webspace_dir."/usr_images";
143 $store_file = "usr_".$ilUser->getID()."."."jpg";
144
145 // store filename
146 $ilUser->setPref("profile_image", $store_file);
147 $ilUser->update();
148
149 // move uploaded file
150 $uploaded_file = $this->form->moveFileUpload($image_dir,
151 "userfile", "upload_".$ilUser->getId()."pic");
152
153 if (!$uploaded_file)
154 {
155 ilUtil::sendFailure($this->lng->txt("upload_error", true));
156 $this->ctrl->redirect($this, "showProfile");
157 }
158 chmod($uploaded_file, 0770);
159
160 // take quality 100 to avoid jpeg artefacts when uploading jpeg files
161 // taking only frame [0] to avoid problems with animated gifs
162 $show_file = "$image_dir/usr_".$ilUser->getId().".jpg";
163 $thumb_file = "$image_dir/usr_".$ilUser->getId()."_small.jpg";
164 $xthumb_file = "$image_dir/usr_".$ilUser->getId()."_xsmall.jpg";
165 $xxthumb_file = "$image_dir/usr_".$ilUser->getId()."_xxsmall.jpg";
166 $uploaded_file = ilUtil::escapeShellArg($uploaded_file);
167 $show_file = ilUtil::escapeShellArg($show_file);
168 $thumb_file = ilUtil::escapeShellArg($thumb_file);
169 $xthumb_file = ilUtil::escapeShellArg($xthumb_file);
170 $xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
171
173 {
174 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:".$show_file);
175 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:".$thumb_file);
176 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:".$xthumb_file);
177 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:".$xxthumb_file);
178 }
179 else
180 {
181 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200 -quality 100 JPEG:".$show_file);
182 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100 -quality 100 JPEG:".$thumb_file);
183 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75 -quality 100 JPEG:".$xthumb_file);
184 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30 -quality 100 JPEG:".$xxthumb_file);
185 }
186 }
187 }
188
189// $this->saveProfile();
190 }
static isConvertVersionAtLeast($a_version)
Compare convert version numbers.
static escapeShellArg($a_arg)
static getWebspaceDir($mode="filesystem")
get webspace directory
static execConvert($args)
execute convert command

References $ilUser, ilUtil\escapeShellArg(), ilUtil\execConvert(), ilUtil\getWebspaceDir(), ilUtil\isConvertVersionAtLeast(), ilUtil\sendFailure(), and workWithUserSetting().

Referenced by savePersonalData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ userSettingEnabled()

ilPersonalProfileGUI::userSettingEnabled (   $setting)

Returns TRUE if user setting is enabled, FALSE otherwise.

Definition at line 112 of file class.ilPersonalProfileGUI.php.

113 {
114 $result = TRUE;
115 if ($this->settings["usr_settings_disable_".$setting] == 1)
116 {
117 $result = FALSE;
118 }
119 return $result;
120 }
$result

References $result.

◆ userSettingVisible()

ilPersonalProfileGUI::userSettingVisible (   $setting)

Returns TRUE if user setting is visible, FALSE otherwise.

Definition at line 97 of file class.ilPersonalProfileGUI.php.

98 {
99 $result = TRUE;
100 if (isset($this->settings["usr_settings_hide_".$setting]) &&
101 $this->settings["usr_settings_hide_".$setting] == 1)
102 {
103 $result = FALSE;
104 }
105 return $result;
106 }

References $result.

Referenced by __showOtherInformations().

+ Here is the caller graph for this function:

◆ workWithUserSetting()

ilPersonalProfileGUI::workWithUserSetting (   $setting)

Returns TRUE if working with the given user setting is allowed, FALSE otherwise.

Definition at line 79 of file class.ilPersonalProfileGUI.php.

80 {
81 $result = TRUE;
82 if ($this->settings["usr_settings_hide_".$setting] == 1)
83 {
84 $result = FALSE;
85 }
86 if ($this->settings["usr_settings_disable_".$setting] == 1)
87 {
88 $result = FALSE;
89 }
90 return $result;
91 }

References $result.

Referenced by savePersonalData(), saveProfile(), and uploadUserPicture().

+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilPersonalProfileGUI::$ctrl

Definition at line 17 of file class.ilPersonalProfileGUI.php.

◆ $ilias

ilPersonalProfileGUI::$ilias

Definition at line 16 of file class.ilPersonalProfileGUI.php.

Referenced by ilPersonalProfileGUI(), and showPersonalData().

◆ $lng

ilPersonalProfileGUI::$lng

◆ $tpl

ilPersonalProfileGUI::$tpl

◆ $user_defined_fields

ilPersonalProfileGUI::$user_defined_fields = null

Definition at line 19 of file class.ilPersonalProfileGUI.php.


The documentation for this class was generated from the following file: