ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilPersonalProfileGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
13{
14 var $tpl;
15 var $lng;
16 var $ilias;
17 var $ctrl;
18
20
21
25 function __construct()
26 {
27 global $ilias, $tpl, $lng, $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 }
44
48 function executeCommand()
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 }
73
74
79 function workWithUserSetting($setting)
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 }
92
97 function userSettingVisible($setting)
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 }
107
112 function userSettingEnabled($setting)
113 {
114 $result = TRUE;
115 if ($this->settings["usr_settings_disable_".$setting] == 1)
116 {
117 $result = FALSE;
118 }
119 return $result;
120 }
121
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
151 $pi = pathinfo($_FILES["userfile"]["name"]);
152 $uploaded_file = $this->form->moveFileUpload($image_dir,
153 "userfile", "upload_".$ilUser->getId().".".$pi["extension"]);
154 if (!$uploaded_file)
155 {
156 ilUtil::sendFailure($this->lng->txt("upload_error", true));
157 $this->ctrl->redirect($this, "showProfile");
158 }
159 chmod($uploaded_file, 0770);
160
161 // take quality 100 to avoid jpeg artefacts when uploading jpeg files
162 // taking only frame [0] to avoid problems with animated gifs
163 $show_file = "$image_dir/usr_".$ilUser->getId().".jpg";
164 $thumb_file = "$image_dir/usr_".$ilUser->getId()."_small.jpg";
165 $xthumb_file = "$image_dir/usr_".$ilUser->getId()."_xsmall.jpg";
166 $xxthumb_file = "$image_dir/usr_".$ilUser->getId()."_xxsmall.jpg";
167 $uploaded_file = ilUtil::escapeShellArg($uploaded_file);
168 $show_file = ilUtil::escapeShellArg($show_file);
169 $thumb_file = ilUtil::escapeShellArg($thumb_file);
170 $xthumb_file = ilUtil::escapeShellArg($xthumb_file);
171 $xxthumb_file = ilUtil::escapeShellArg($xxthumb_file);
172
174 {
175 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200^ -gravity center -extent 200x200 -quality 100 JPEG:".$show_file);
176 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100^ -gravity center -extent 100x100 -quality 100 JPEG:".$thumb_file);
177 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75^ -gravity center -extent 75x75 -quality 100 JPEG:".$xthumb_file);
178 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30^ -gravity center -extent 30x30 -quality 100 JPEG:".$xxthumb_file);
179 }
180 else
181 {
182 ilUtil::execConvert($uploaded_file . "[0] -geometry 200x200 -quality 100 JPEG:".$show_file);
183 ilUtil::execConvert($uploaded_file . "[0] -geometry 100x100 -quality 100 JPEG:".$thumb_file);
184 ilUtil::execConvert($uploaded_file . "[0] -geometry 75x75 -quality 100 JPEG:".$xthumb_file);
185 ilUtil::execConvert($uploaded_file . "[0] -geometry 30x30 -quality 100 JPEG:".$xxthumb_file);
186 }
187 }
188 }
189
190// $this->saveProfile();
191 }
192
197 {
198 global $ilUser;
199
200 $ilUser->removeUserPicture();
201
202 $this->saveProfile();
203 }
204
205
206
210 function saveProfile()
211 {
212 global $ilUser ,$ilSetting, $ilAuth;
213
214 //init checking var
215 $form_valid = true;
216
217 // testing by ratana ty:
218 // if people check on check box it will
219 // write some datata to table usr_pref
220 // if check on Public Profile
221 if (($_POST["chk_pub"])=="on")
222 {
223 $ilUser->setPref("public_profile","y");
224 }
225 else
226 {
227 $ilUser->setPref("public_profile","n");
228 }
229
230 // if check on Institute
231 $val_array = array("institution", "department", "upload", "street",
232 "zip", "city", "country", "phone_office", "phone_home", "phone_mobile",
233 "fax", "email", "hobby", "matriculation");
234
235 // set public profile preferences
236 foreach($val_array as $key => $value)
237 {
238 if (($_POST["chk_".$value]) == "on")
239 {
240 $ilUser->setPref("public_".$value,"y");
241 }
242 else
243 {
244 $ilUser->setPref("public_".$value,"n");
245 }
246 }
247
248 // check dynamically required fields
249 foreach($this->settings as $key => $val)
250 {
251 if (substr($key,0,8) == "require_")
252 {
253 $require_keys[] = substr($key,8);
254 }
255 }
256
257 foreach($require_keys as $key => $val)
258 {
259 // exclude required system and registration-only fields
260 $system_fields = array("login", "default_role", "passwd", "passwd2");
261 if (!in_array($val, $system_fields))
262 {
263 if ($this->workWithUserSetting($val))
264 {
265 if (isset($this->settings["require_" . $val]) && $this->settings["require_" . $val])
266 {
267 if (empty($_POST["usr_" . $val]))
268 {
269 ilUtil::sendFailure($this->lng->txt("fill_out_all_required_fields") . ": " . $this->lng->txt($val));
270 $form_valid = false;
271 }
272 }
273 }
274 }
275 }
276
277 // Check user defined required fields
278 if($form_valid and !$this->__checkUserDefinedRequiredFields())
279 {
280 ilUtil::sendFailure($this->lng->txt("fill_out_all_required_fields"));
281 $form_valid = false;
282 }
283
284 // check email
285 if ($this->workWithUserSetting("email"))
286 {
287 if (!ilUtil::is_email($_POST["usr_email"]) and !empty($_POST["usr_email"]) and $form_valid)
288 {
289 ilUtil::sendFailure($this->lng->txt("email_not_valid"));
290 $form_valid = false;
291 }
292 }
293
294 //update user data (not saving!)
295 if ($this->workWithUserSetting("firstname"))
296 {
297 $ilUser->setFirstName(ilUtil::stripSlashes($_POST["usr_firstname"]));
298 }
299 if ($this->workWithUserSetting("lastname"))
300 {
301 $ilUser->setLastName(ilUtil::stripSlashes($_POST["usr_lastname"]));
302 }
303 if ($this->workWithUserSetting("gender"))
304 {
305 $ilUser->setGender($_POST["usr_gender"]);
306 }
307 if ($this->workWithUserSetting("title"))
308 {
309 $ilUser->setUTitle(ilUtil::stripSlashes($_POST["usr_title"]));
310 }
311 $ilUser->setFullname();
312 if ($this->workWithUserSetting("institution"))
313 {
314 $ilUser->setInstitution(ilUtil::stripSlashes($_POST["usr_institution"]));
315 }
316 if ($this->workWithUserSetting("department"))
317 {
318 $ilUser->setDepartment(ilUtil::stripSlashes($_POST["usr_department"]));
319 }
320 if ($this->workWithUserSetting("street"))
321 {
322 $ilUser->setStreet(ilUtil::stripSlashes($_POST["usr_street"]));
323 }
324 if ($this->workWithUserSetting("zipcode"))
325 {
326 $ilUser->setZipcode(ilUtil::stripSlashes($_POST["usr_zipcode"]));
327 }
328 if ($this->workWithUserSetting("city"))
329 {
330 $ilUser->setCity(ilUtil::stripSlashes($_POST["usr_city"]));
331 }
332 if ($this->workWithUserSetting("country"))
333 {
334 $ilUser->setCountry(ilUtil::stripSlashes($_POST["usr_country"]));
335 }
336 if ($this->workWithUserSetting("phone_office"))
337 {
338 $ilUser->setPhoneOffice(ilUtil::stripSlashes($_POST["usr_phone_office"]));
339 }
340 if ($this->workWithUserSetting("phone_home"))
341 {
342 $ilUser->setPhoneHome(ilUtil::stripSlashes($_POST["usr_phone_home"]));
343 }
344 if ($this->workWithUserSetting("phone_mobile"))
345 {
346 $ilUser->setPhoneMobile(ilUtil::stripSlashes($_POST["usr_phone_mobile"]));
347 }
348 if ($this->workWithUserSetting("fax"))
349 {
350 $ilUser->setFax(ilUtil::stripSlashes($_POST["usr_fax"]));
351 }
352 if ($this->workWithUserSetting("email"))
353 {
354 $ilUser->setEmail(ilUtil::stripSlashes($_POST["usr_email"]));
355 }
356 if ($this->workWithUserSetting("hobby"))
357 {
358 $ilUser->setHobby(ilUtil::stripSlashes($_POST["usr_hobby"]));
359 }
360 if ($this->workWithUserSetting("referral_comment"))
361 {
362 $ilUser->setComment(ilUtil::stripSlashes($_POST["usr_referral_comment"]));
363 }
364 if ($this->workWithUserSetting("matriculation"))
365 {
366 $ilUser->setMatriculation(ilUtil::stripSlashes($_POST["usr_matriculation"]));
367 }
368
369 // Set user defined data
370 $ilUser->setUserDefinedData($_POST['udf']);
371
372 // everthing's ok. save form data
373 if ($form_valid)
374 {
375 // init reload var. page should only be reloaded if skin or style were changed
376 $reload = false;
377
378 if ($this->workWithUserSetting("skin_style"))
379 {
380 //set user skin and style
381 if ($_POST["usr_skin_style"] != "")
382 {
383 $sknst = explode(":", $_POST["usr_skin_style"]);
384
385 if ($ilUser->getPref("style") != $sknst[1] ||
386 $ilUser->getPref("skin") != $sknst[0])
387 {
388 $ilUser->setPref("skin", $sknst[0]);
389 $ilUser->setPref("style", $sknst[1]);
390 $reload = true;
391 }
392 }
393 }
394
395 if ($this->workWithUserSetting("language"))
396 {
397 // reload page if language was changed
398 //if ($_POST["usr_language"] != "" and $_POST["usr_language"] != $_SESSION['lang'])
399 // (this didn't work as expected, alex)
400 if ($_POST["usr_language"] != $ilUser->getLanguage())
401 {
402 $reload = true;
403 }
404
405 // set user language
406 $ilUser->setLanguage($_POST["usr_language"]);
407
408 }
409 if ($this->workWithUserSetting("hits_per_page"))
410 {
411 // set user hits per page
412 if ($_POST["hits_per_page"] != "")
413 {
414 $ilUser->setPref("hits_per_page",$_POST["hits_per_page"]);
415 }
416 }
417
418 // set show users online
419 /*if ($this->workWithUserSetting("show_users_online"))
420 {
421 $ilUser->setPref("show_users_online", $_POST["show_users_online"]);
422 }*/
423
424 // set hide own online_status
425 if ($this->workWithUserSetting("hide_own_online_status"))
426 {
427 if ($_POST["chk_hide_own_online_status"] != "")
428 {
429 $ilUser->setPref("hide_own_online_status","y");
430 }
431 else
432 {
433 $ilUser->setPref("hide_own_online_status","n");
434 }
435 }
436
437 // personal desktop items in news block
438/* Subscription Concept is abandonded for now, we show all news of pd items (Alex)
439 if ($_POST["pd_items_news"] != "")
440 {
441 $ilUser->setPref("pd_items_news","y");
442 }
443 else
444 {
445 $ilUser->setPref("pd_items_news","n");
446 }
447*/
448
449 // profile ok
450 $ilUser->setProfileIncomplete(false);
451
452 // save user data & object_data
453 $ilUser->setTitle($ilUser->getFullname());
454 $ilUser->setDescription($ilUser->getEmail());
455
456 $ilUser->update();
457
458 // update lucene index
459 include_once './Services/Search/classes/Lucene/class.ilLuceneIndexer.php';
460 ilLuceneIndexer::updateLuceneIndex(array($GLOBALS['ilUser']->getId()));
461
462
463 // reload page only if skin or style were changed
464 // feedback
465 if (!empty($this->password_error))
466 {
467 ilUtil::sendFailure($this->password_error,true);
468 }
469 elseif (!empty($this->upload_error))
470 {
471 ilUtil::sendFailure($this->upload_error,true);
472 }
473 else if ($reload)
474 {
475 // feedback
476 ilUtil::sendSuccess($this->lng->txt("saved_successfully"),true);
477 $this->ctrl->redirect($this, "");
478 }
479 else
480 {
481 ilUtil::sendSuccess($this->lng->txt("saved_successfully"),true);
482 }
483 }
484
485 $this->showProfile();
486 }
487
493 function showProfile()
494 {
495 $this->showPersonalData();
496 }
497
505 {
506 global $ilCtrl;
507
508 // check map activation
509 include_once("./Services/Maps/classes/class.ilMapUtil.php");
511 {
512 return;
513 }
514
515 // Don't really know if this is still necessary...
516 $this->lng->loadLanguageModule("maps");
517
518 // Get user settings
519 $latitude = $a_user->getLatitude();
520 $longitude = $a_user->getLongitude();
521 $zoom = $a_user->getLocationZoom();
522
523 // Get Default settings, when nothing is set
524 if ($latitude == 0 && $longitude == 0 && $zoom == 0)
525 {
527 $latitude = $def["latitude"];
528 $longitude = $def["longitude"];
529 $zoom = $def["zoom"];
530 }
531
532 $street = $a_user->getStreet();
533 if (!$street)
534 {
535 $street = $this->lng->txt("street");
536 }
537 $city = $a_user->getCity();
538 if (!$city)
539 {
540 $city = $this->lng->txt("city");
541 }
542 $country = $a_user->getCountry();
543 if (!$country)
544 {
545 $country = $this->lng->txt("country");
546 }
547
548 // location property
549 $loc_prop = new ilLocationInputGUI($this->lng->txt("location"),
550 "location");
551 $loc_prop->setLatitude($latitude);
552 $loc_prop->setLongitude($longitude);
553 $loc_prop->setZoom($zoom);
554 $loc_prop->setAddress($street.",".$city.",".$country);
555
556 $a_form->addItem($loc_prop);
557 }
558
559 // init sub tabs
560 function setTabs()
561 {
562 global $ilTabs, $ilUser, $ilHelp;
563
564 $ilHelp->setScreenIdComponent("user");
565
566 // personal data
567 $ilTabs->addTab("personal_data",
568 $this->lng->txt("personal_data"),
569 $this->ctrl->getLinkTarget($this, "showPersonalData"));
570
571 // public profile
572 $ilTabs->addTab("public_profile",
573 $this->lng->txt("public_profile"),
574 $this->ctrl->getLinkTarget($this, "showPublicProfile"));
575
576 // export
577 $ilTabs->addTab("export",
578 $this->lng->txt("export")."/".$this->lng->txt("import"),
579 $this->ctrl->getLinkTarget($this, "showExportImport"));
580
581 // #17570
582 if(($ilUser->getPref("public_profile") &&
583 $ilUser->getPref("public_profile") != "n") ||
584 $this->getProfilePortfolio())
585 {
586 // profile preview
587 $ilTabs->addNonTabbedLink("profile_preview",
588 $this->lng->txt("user_profile_preview"),
589 $this->ctrl->getLinkTargetByClass("ilpublicuserprofilegui", "view"));
590 }
591 }
592
593
595 {
596 $d_set = new ilSetting("delicous");
597 if($this->userSettingVisible("matriculation") or count($this->user_defined_fields->getVisibleDefinitions())
598 or $d_set->get("user_profile") == "1")
599 {
600 return true;
601 }
602 return false;
603 }
604
606 {
607 global $ilUser;
608
609 $user_defined_data = $ilUser->getUserDefinedData();
610 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
611 {
612 if($definition['field_type'] == UDF_TYPE_TEXT)
613 {
614 $this->tpl->setCurrentBlock("field_text");
615 $this->tpl->setVariable("FIELD_VALUE",ilUtil::prepareFormOutput($user_defined_data[$field_id]));
616 if(!$definition['changeable'])
617 {
618 $this->tpl->setVariable("DISABLED_FIELD",'disabled=\"disabled\"');
619 $this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
620 }
621 else
622 {
623 $this->tpl->setVariable("FIELD_NAME",'udf['.$definition['field_id'].']');
624 }
625 $this->tpl->parseCurrentBlock();
626 }
627 else
628 {
629 if($definition['changeable'])
630 {
631 $name = 'udf['.$definition['field_id'].']';
632 $disabled = false;
633 }
634 else
635 {
636 $name = '';
637 $disabled = true;
638 }
639 $this->tpl->setCurrentBlock("field_select");
640 $this->tpl->setVariable("SELECT_BOX",ilUtil::formSelect($user_defined_data[$field_id],
641 $name,
642 $this->user_defined_fields->fieldValuesToSelectArray(
643 $definition['field_values']),
644 false,
645 true,0,'','',$disabled));
646 $this->tpl->parseCurrentBlock();
647 }
648 $this->tpl->setCurrentBlock("user_defined");
649
650 if($definition['required'])
651 {
652 $name = $definition['field_name']."<span class=\"asterisk\">*</span>";
653 }
654 else
655 {
656 $name = $definition['field_name'];
657 }
658 $this->tpl->setVariable("TXT_FIELD_NAME",$name);
659 $this->tpl->parseCurrentBlock();
660 }
661 return true;
662 }
663
665 {
666 foreach($this->user_defined_fields->getVisibleDefinitions() as $definition)
667 {
668 $field_id = $definition['field_id'];
669 if($definition['required'] and !strlen($_POST['udf'][$field_id]))
670 {
671 return false;
672 }
673 }
674 return true;
675 }
676
680 function setHeader()
681 {
682 $this->tpl->setTitle($this->lng->txt('personal_profile'));
683 }
684
685 //
686 //
687 // PERSONAL DATA FORM
688 //
689 //
690
694 function showPersonalData($a_no_init = false)
695 {
696 global $ilUser, $styleDefinition, $rbacreview, $ilias, $lng, $ilSetting, $ilTabs;
697
698 $ilTabs->activateTab("personal_data");
699
700 $settings = $ilias->getAllSettings();
701
702 $this->setHeader();
703
704 if (!$a_no_init)
705 {
706 $this->initPersonalDataForm();
707 // catch feedback message
708 if ($ilUser->getProfileIncomplete())
709 {
710 ilUtil::sendInfo($lng->txt("profile_incomplete"));
711 }
712 }
713 $this->tpl->setContent($this->form->getHTML());
714
715 $this->tpl->show();
716 }
717
722 {
723 global $ilSetting, $lng, $ilUser, $styleDefinition, $rbacreview;
724
725 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
726 $this->form = new ilPropertyFormGUI();
727 $this->form->setFormAction($this->ctrl->getFormAction($this));
728
729 // user defined fields
730 $user_defined_data = $ilUser->getUserDefinedData();
731
732 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
733 {
734 if($definition['field_type'] == UDF_TYPE_TEXT)
735 {
736 $this->input["udf_".$definition['field_id']] =
737 new ilTextInputGUI($definition['field_name'], "udf_".$definition['field_id']);
738 $this->input["udf_".$definition['field_id']]->setMaxLength(255);
739 $this->input["udf_".$definition['field_id']]->setSize(40);
740 }
741 else if($definition['field_type'] == UDF_TYPE_WYSIWYG)
742 {
743 $this->input["udf_".$definition['field_id']] =
744 new ilTextAreaInputGUI($definition['field_name'], "udf_".$definition['field_id']);
745 $this->input["udf_".$definition['field_id']]->setUseRte(true);
746 }
747 else
748 {
749 $options = $this->user_defined_fields->fieldValuesToSelectArray($definition['field_values']);
750 $this->input["udf_".$definition['field_id']] =
751 new ilSelectInputGUI($definition['field_name'], "udf_".$definition['field_id']);
752 $this->input["udf_".$definition['field_id']]->setOptions($options);
753 }
754
755 $value = $user_defined_data["f_".$field_id];
756 $this->input["udf_".$definition['field_id']]->setValue($value);
757
758 if($definition['required'])
759 {
760 $this->input["udf_".$definition['field_id']]->setRequired(true);
761 }
762 if(!$definition['changeable'] && (!$definition['required'] || $value))
763 {
764 $this->input["udf_".$definition['field_id']]->setDisabled(true);
765 }
766
767 // add "please select" if no current value
768 if($definition['field_type'] == UDF_TYPE_SELECT && !$value)
769 {
770 $options = array(""=>$lng->txt("please_select")) + $options;
771 $this->input["udf_".$definition['field_id']]->setOptions($options);
772 }
773 }
774
775 // standard fields
776 include_once("./Services/User/classes/class.ilUserProfile.php");
777 $up = new ilUserProfile();
778 $up->skipField("password");
779 $up->skipGroup("settings");
780 $up->skipGroup("preferences");
781
782 $up->setAjaxCallback(
783 $this->ctrl->getLinkTargetByClass('ilPublicUserProfileGUI', 'doProfileAutoComplete', '', true)
784 );
785
786 // standard fields
787 $up->addStandardFieldsToForm($this->form, $ilUser, $this->input);
788
789 $this->addLocationToForm($this->form, $ilUser);
790
791 $this->form->addCommandButton("savePersonalData", $lng->txt("save"));
792
793 }
794
799 public function savePersonalData()
800 {
802
803 $this->initPersonalDataForm();
804 if ($this->form->checkInput())
805 {
806 $form_valid = true;
807
808 // if form field name differs from setter
809 $map = array(
810 "firstname" => "FirstName",
811 "lastname" => "LastName",
812 "title" => "UTitle",
813 "sel_country" => "SelectedCountry",
814 "phone_office" => "PhoneOffice",
815 "phone_home" => "PhoneHome",
816 "phone_mobile" => "PhoneMobile",
817 "referral_comment" => "Comment",
818 "interests_general" => "GeneralInterests",
819 "interests_help_offered" => "OfferingHelp",
820 "interests_help_looking" => "LookingForHelp"
821 );
822 include_once("./Services/User/classes/class.ilUserProfile.php");
823 $up = new ilUserProfile();
824 foreach($up->getStandardFields() as $f => $p)
825 {
826 // if item is part of form, it is currently valid (if not disabled)
827 $item = $this->form->getItemByPostVar("usr_".$f);
828 if($item && !$item->getDisabled())
829 {
830 $value = $this->form->getInput("usr_".$f);
831 switch($f)
832 {
833 case "birthday":
834 $value = $item->getDate();
835 $ilUser->setBirthday($value
836 ? $value->get(IL_CAL_DATE)
837 : "");
838 break;
839
840 default:
841 $m = ucfirst($f);
842 if(isset($map[$f]))
843 {
844 $m = $map[$f];
845 }
846 $ilUser->{"set".$m}($value);
847 break;
848 }
849 }
850 }
851 $ilUser->setFullname();
852
853 // check map activation
854 include_once("./Services/Maps/classes/class.ilMapUtil.php");
856 {
857 // #17619 - proper escaping
858 $location = $this->form->getInput("location");
859 $lat = ilUtil::stripSlashes($location["latitude"]);
860 $long = ilUtil::stripSlashes($location["longitude"]);
861 $zoom = ilUtil::stripSlashes($location["zoom"]);
862 $ilUser->setLatitude(is_numeric($lat) ? $lat : null);
863 $ilUser->setLongitude(is_numeric($long) ? $long : null);
864 $ilUser->setLocationZoom(is_numeric($zoom) ? $zoom : null);
865 }
866
867 // Set user defined data
868 $defs = $this->user_defined_fields->getVisibleDefinitions();
869 $udf = array();
870 foreach ($defs as $definition)
871 {
872 $f = "udf_".$definition['field_id'];
873 $item = $this->form->getItemByPostVar($f);
874 if ($item && !$item->getDisabled())
875 {
876 $udf[$definition['field_id']] = $this->form->getInput($f);
877 }
878 }
879 $ilUser->setUserDefinedData($udf);
880
881 // if loginname is changeable -> validate
882 $un = $this->form->getInput('username');
883 if((int)$ilSetting->get('allow_change_loginname') &&
884 $un != $ilUser->getLogin())
885 {
886 if(!strlen($un) || !ilUtil::isLogin($un))
887 {
888 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
889 $this->form->getItemByPostVar('username')->setAlert($this->lng->txt('login_invalid'));
890 $form_valid = false;
891 }
892 else if(ilObjUser::_loginExists($un, $ilUser->getId()))
893 {
894 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
895 $this->form->getItemByPostVar('username')->setAlert($this->lng->txt('loginname_already_exists'));
896 $form_valid = false;
897 }
898 else
899 {
900 $ilUser->setLogin($un);
901
902 try
903 {
904 $ilUser->updateLogin($ilUser->getLogin());
905 }
906 catch (ilUserException $e)
907 {
908 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
909 $this->form->getItemByPostVar('username')->setAlert($e->getMessage());
910 $form_valid = false;
911 }
912 }
913 }
914
915 // everthing's ok. save form data
916 if ($form_valid)
917 {
918 $this->uploadUserPicture();
919
920 // profile ok
921 $ilUser->setProfileIncomplete(false);
922
923 // save user data & object_data
924 $ilUser->setTitle($ilUser->getFullname());
925 $ilUser->setDescription($ilUser->getEmail());
926
927 $ilUser->update();
928
929 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
930
931 if(ilSession::get('orig_request_target'))
932 {
933 $target = ilSession::get('orig_request_target');
934 ilSession::set('orig_request_target', '');
936 }
937 else if($redirect = $_SESSION['profile_complete_redirect'])
938 {
939 unset($_SESSION['profile_complete_redirect']);
940 ilUtil::redirect($redirect);
941 }
942 else
943 {
944 $ilCtrl->redirect($this, "showPersonalData");
945 }
946 }
947 }
948
949 $this->form->setValuesByPost();
950 $this->showPersonalData(true);
951 }
952
953 //
954 //
955 // PUBLIC PROFILE FORM
956 //
957 //
958
962 function showPublicProfile($a_no_init = false)
963 {
964 global $ilUser, $lng, $ilSetting, $ilTabs;
965
966 $ilTabs->activateTab("public_profile");
967
968 $this->setHeader();
969
970 if (!$a_no_init)
971 {
972 $this->initPublicProfileForm();
973 }
974
975 $ptpl = new ilTemplate("tpl.edit_personal_profile.html", true, true, "Services/User");
976 $ptpl->setVariable("FORM", $this->form->getHTML());
977 include_once("./Services/User/classes/class.ilPublicUserProfileGUI.php");
978 $pub_profile = new ilPublicUserProfileGUI($ilUser->getId());
979 $ptpl->setVariable("PREVIEW", $pub_profile->getEmbeddable());
980 $this->tpl->setContent($ptpl->get());
981 $this->tpl->show();
982 }
983
989 protected function getProfilePortfolio()
990 {
991 global $ilUser, $ilSetting;
992
993 if ($ilSetting->get('user_portfolios'))
994 {
995 include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
997 }
998 }
999
1005 public function initPublicProfileForm()
1006 {
1007 global $lng, $ilUser, $ilSetting;
1008
1009 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1010 $this->form = new ilPropertyFormGUI();
1011
1012 $this->form->setTitle($lng->txt("public_profile"));
1013 $this->form->setDescription($lng->txt("user_public_profile_info"));
1014 $this->form->setFormAction($this->ctrl->getFormAction($this));
1015
1016 $portfolio_id = $this->getProfilePortfolio();
1017
1018 if(!$portfolio_id)
1019 {
1020 // Activate public profile
1021 $radg = new ilRadioGroupInputGUI($lng->txt("user_activate_public_profile"), "public_profile");
1022 $info = $this->lng->txt("user_activate_public_profile_info");
1023 $pub_prof = in_array($ilUser->prefs["public_profile"], array("y", "n", "g"))
1024 ? $ilUser->prefs["public_profile"]
1025 : "n";
1026 if (!$ilSetting->get('enable_global_profiles') && $pub_prof == "g")
1027 {
1028 $pub_prof = "y";
1029 }
1030 $radg->setValue($pub_prof);
1031 $op1 = new ilRadioOption($lng->txt("usr_public_profile_disabled"), "n",$lng->txt("usr_public_profile_disabled_info"));
1032 $radg->addOption($op1);
1033 $op2 = new ilRadioOption($lng->txt("usr_public_profile_logged_in"), "y");
1034 $radg->addOption($op2);
1035 if ($ilSetting->get('enable_global_profiles'))
1036 {
1037 $op3 = new ilRadioOption($lng->txt("usr_public_profile_global"), "g");
1038 $radg->addOption($op3);
1039 }
1040 $this->form->addItem($radg);
1041
1042 // #11773
1043 if ($ilSetting->get('user_portfolios'))
1044 {
1045 // #10826
1046 $prtf = "<br />".$lng->txt("user_profile_portfolio");
1047 $prtf .= "<br /><a href=\"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToPortfolio\">&raquo; ".
1048 $lng->txt("user_portfolios")."</a>";
1049 $info .= $prtf;
1050 }
1051
1052 $radg->setInfo($info);
1053 }
1054 else
1055 {
1056 $prtf = $lng->txt("user_profile_portfolio_selected");
1057 $prtf .= "<br /><a href=\"ilias.php?baseClass=ilPersonalDesktopGUI&cmd=jumpToPortfolio&prt_id=".$portfolio_id."\">&raquo; ".
1058 $lng->txt("portfolio")."</a>";
1059
1060 $info = new ilCustomInputGUI($lng->txt("user_activate_public_profile"));
1061 $info->setHTML($prtf);
1062 $this->form->addItem($info);
1063 }
1064
1065 $this->showPublicProfileFields($this->form, $ilUser->prefs);
1066
1067 $this->form->addCommandButton("savePublicProfile", $lng->txt("save"));
1068 }
1069
1078 public function showPublicProfileFields(ilPropertyformGUI $form, array $prefs, $parent = null, $anonymized = false)
1079 {
1080 global $ilUser;
1081
1082 $birthday = $ilUser->getBirthday();
1083 if($birthday)
1084 {
1085 $birthday = ilDatePresentation::formatDate(new ilDate($birthday, IL_CAL_DATE));
1086 }
1087 $gender = $ilUser->getGender();
1088 if($gender)
1089 {
1090 $gender = $this->lng->txt("gender_".$gender);
1091 }
1092
1093 if ($ilUser->getSelectedCountry() != "")
1094 {
1095 $this->lng->loadLanguageModule("meta");
1096 $txt_sel_country = $this->lng->txt("meta_c_".$ilUser->getSelectedCountry());
1097 }
1098
1099 // profile picture
1100 $pic = ilObjUser::_getPersonalPicturePath($ilUser->getId(), "xsmall", true, true);
1101 if($pic)
1102 {
1103 $pic = "<img src=\"".$pic."\" />";
1104 }
1105
1106 // personal data
1107 $val_array = array(
1108 "title" => $ilUser->getUTitle(),
1109 "birthday" => $birthday,
1110 "gender" => $gender,
1111 "upload" => $pic,
1112 "interests_general" => $ilUser->getGeneralInterestsAsText(),
1113 "interests_help_offered" => $ilUser->getOfferingHelpAsText(),
1114 "interests_help_looking" => $ilUser->getLookingForHelpAsText(),
1115 "org_units" => $ilUser->getOrgUnitsRepresentation(),
1116 "institution" => $ilUser->getInstitution(),
1117 "department" => $ilUser->getDepartment(),
1118 "street" => $ilUser->getStreet(),
1119 "zipcode" => $ilUser->getZipcode(),
1120 "city" => $ilUser->getCity(),
1121 "country" => $ilUser->getCountry(),
1122 "sel_country" => $txt_sel_country,
1123 "phone_office" => $ilUser->getPhoneOffice(),
1124 "phone_home" => $ilUser->getPhoneHome(),
1125 "phone_mobile" => $ilUser->getPhoneMobile(),
1126 "fax" => $ilUser->getFax(),
1127 "email" => $ilUser->getEmail(),
1128 "hobby" => $ilUser->getHobby(),
1129 "matriculation" => $ilUser->getMatriculation()
1130 );
1131
1132 // location
1133 include_once("./Services/Maps/classes/class.ilMapUtil.php");
1135 {
1136 $val_array["location"] = "";
1137 }
1138
1139 foreach($val_array as $key => $value)
1140 {
1141 if($anonymized)
1142 {
1143 $value = null;
1144 }
1145
1146 if ($this->userSettingVisible($key))
1147 {
1148 // #18795 - we should use ilUserProfile
1149 switch($key)
1150 {
1151 case "upload":
1152 $caption = "personal_picture";
1153 break;
1154
1155 case "title":
1156 $caption = "person_title";
1157 break;
1158
1159 default:
1160 $caption = $key;
1161 }
1162 $cb = new ilCheckboxInputGUI($this->lng->txt($caption), "chk_".$key);
1163 if ($prefs["public_".$key] == "y")
1164 {
1165 $cb->setChecked(true);
1166 }
1167 //$cb->setInfo($value);
1168 $cb->setOptionTitle($value);
1169
1170 if(!$parent)
1171 {
1172 $form->addItem($cb);
1173 }
1174 else
1175 {
1176 $parent->addSubItem($cb);
1177 }
1178 }
1179 }
1180
1181 // additional defined user data fields
1182 $user_defined_data = array();
1183 if(!$anonymized)
1184 {
1185 $user_defined_data = $ilUser->getUserDefinedData();
1186 }
1187 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
1188 {
1189 // public setting
1190 $cb = new ilCheckboxInputGUI($definition["field_name"], "chk_udf_".$definition["field_id"]);
1191 $cb->setOptionTitle($user_defined_data["f_".$definition["field_id"]]);
1192 if ($prefs["public_udf_".$definition["field_id"]] == "y")
1193 {
1194 $cb->setChecked(true);
1195 }
1196
1197 if(!$parent)
1198 {
1199 $form->addItem($cb);
1200 }
1201 else
1202 {
1203 $parent->addSubItem($cb);
1204 }
1205 }
1206
1207 // :TODO: badges
1208 if(!$anonymized)
1209 {
1210 include_once "Services/Badge/classes/class.ilBadgeHandler.php";
1211 $handler = ilBadgeHandler::getInstance();
1212 if($handler->isActive())
1213 {
1214 $badge_options = array();
1215
1216 include_once "Services/Badge/classes/class.ilBadgeAssignment.php";
1217 include_once "Services/Badge/classes/class.ilBadge.php";
1218 foreach(ilBadgeAssignment::getInstancesByUserId($ilUser->getId()) as $ass)
1219 {
1220 // only active
1221 if($ass->getPosition())
1222 {
1223 $badge = new ilBadge($ass->getBadgeId());
1224 $badge_options[] = $badge->getTitle();
1225 }
1226 }
1227
1228 if(sizeof($badge_options) > 1)
1229 {
1230 $badge_order = new ilNonEditableValueGUI($this->lng->txt("obj_bdga"), "bpos");
1231 $badge_order->setMultiValues($badge_options);
1232 $badge_order->setValue(array_shift($badge_options));
1233 $badge_order->setMulti(true, true, false);
1234
1235 if(!$parent)
1236 {
1237 $form->addItem($badge_order);
1238 }
1239 else
1240 {
1241 $parent->addSubItem($badge_order);
1242 }
1243 }
1244 }
1245 }
1246 }
1247
1252 public function savePublicProfile()
1253 {
1254 global $tpl, $lng, $ilCtrl, $ilUser;
1255
1256 $this->initPublicProfileForm();
1257 if ($this->form->checkInput())
1258 {
1259 // with active portfolio no options are presented
1260 if(isset($_POST["public_profile"]))
1261 {
1262 $ilUser->setPref("public_profile", $_POST["public_profile"]);
1263 }
1264
1265 // if check on Institute
1266 $val_array = array("title", "birthday", "gender", "org_units", "institution", "department", "upload",
1267 "street", "zipcode", "city", "country", "sel_country", "phone_office", "phone_home", "phone_mobile",
1268 "fax", "email", "hobby", "matriculation", "location",
1269 "interests_general", "interests_help_offered", "interests_help_looking");
1270
1271 // set public profile preferences
1272 foreach($val_array as $key => $value)
1273 {
1274 if (($_POST["chk_".$value]))
1275 {
1276 $ilUser->setPref("public_".$value,"y");
1277 }
1278 else
1279 {
1280 $ilUser->setPref("public_".$value,"n");
1281 }
1282 }
1283
1284 // additional defined user data fields
1285 foreach($this->user_defined_fields->getVisibleDefinitions() as $field_id => $definition)
1286 {
1287 if (($_POST["chk_udf_".$definition["field_id"]]))
1288 {
1289 $ilUser->setPref("public_udf_".$definition["field_id"], "y");
1290 }
1291 else
1292 {
1293 $ilUser->setPref("public_udf_".$definition["field_id"], "n");
1294 }
1295 }
1296
1297 $ilUser->update();
1298
1299 // :TODO: badges
1300 include_once "Services/Badge/classes/class.ilBadgeHandler.php";
1301 $handler = ilBadgeHandler::getInstance();
1302 if($handler->isActive())
1303 {
1304 if(sizeof($_POST["bpos"]))
1305 {
1306 include_once "Services/Badge/classes/class.ilBadgeAssignment.php";
1308 }
1309 }
1310
1311 // update lucene index
1312 include_once './Services/Search/classes/Lucene/class.ilLuceneIndexer.php';
1313 ilLuceneIndexer::updateLuceneIndex(array((int) $GLOBALS['ilUser']->getId()));
1314
1315 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1316 $ilCtrl->redirect($this, "showPublicProfile");
1317 }
1318 $this->form->setValuesByPost();
1319 $tpl->showPublicProfile(true);
1320
1321
1322
1323 }
1324
1332 {
1333 global $ilToolbar, $ilCtrl, $tpl, $ilTabs, $ilUser;
1334
1335 $ilTabs->activateTab("export");
1336 $this->setHeader();
1337
1338 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1339 $button = ilLinkButton::getInstance();
1340 $button->setCaption("pd_export_profile");
1341 $button->setUrl($ilCtrl->getLinkTarget($this, "exportPersonalData"));
1342 $ilToolbar->addStickyItem($button);
1343
1344 $exp_file = $ilUser->getPersonalDataExportFile();
1345 if ($exp_file != "")
1346 {
1347 $ilToolbar->addSeparator();
1348 $ilToolbar->addButton($this->lng->txt("pd_download_last_export_file"),
1349 $ilCtrl->getLinkTarget($this, "downloadPersonalData"));
1350 }
1351
1352 $ilToolbar->addSeparator();
1353 $ilToolbar->addButton($this->lng->txt("pd_import_personal_data"),
1354 $ilCtrl->getLinkTarget($this, "importPersonalDataSelection"));
1355
1356 $tpl->show();
1357 }
1358
1359
1364 {
1365 global $ilCtrl, $ilUser;
1366
1367 $ilUser->exportPersonalData();
1368 $ilUser->sendPersonalDataFile();
1369 $ilCtrl->redirect($this, "showExportImport");
1370 }
1371
1379 {
1380 global $ilUser;
1381
1382 $ilUser->sendPersonalDataFile();
1383 }
1384
1392 {
1393 global $lng, $ilCtrl, $tpl, $ilTabs;
1394
1395 $ilTabs->activateTab("export");
1396 $this->setHeader();
1397
1398 $this->initPersonalDataImportForm();
1399
1400 $tpl->setContent($this->form->getHTML());
1401 $tpl->show();
1402 }
1403
1411 {
1412 global $lng, $ilCtrl;
1413
1414 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1415 $this->form = new ilPropertyFormGUI();
1416
1417 // input file
1418 $fi = new ilFileInputGUI($lng->txt("file"), "file");
1419 $fi->setRequired(true);
1420 $fi->setSuffixes(array("zip"));
1421 $this->form->addItem($fi);
1422
1423 // profile data
1424 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_profile_data"), "profile_data");
1425 $this->form->addItem($cb);
1426
1427 // settings
1428 $cb = new ilCheckboxInputGUI($this->lng->txt("settings"), "settings");
1429 $this->form->addItem($cb);
1430
1431 // bookmarks
1432 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_bookmarks"), "bookmarks");
1433 $this->form->addItem($cb);
1434
1435 // personal notes
1436 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_notes"), "notes");
1437 $this->form->addItem($cb);
1438
1439 // calendar entries
1440 $cb = new ilCheckboxInputGUI($this->lng->txt("pd_private_calendars"), "calendar");
1441 $this->form->addItem($cb);
1442
1443 $this->form->addCommandButton("importPersonalData", $lng->txt("import"));
1444 $this->form->addCommandButton("showExportImport", $lng->txt("cancel"));
1445
1446 $this->form->setTitle($lng->txt("pd_import_personal_data"));
1447 $this->form->setFormAction($ilCtrl->getFormAction($this));
1448
1449 }
1450
1451
1459 {
1460 global $ilUser, $ilCtrl, $tpl, $ilTabs;
1461
1462 $this->initPersonalDataImportForm();
1463 if ($this->form->checkInput())
1464 {
1465 $ilUser->importPersonalData($_FILES["file"],
1466 (int) $_POST["profile_data"],
1467 (int) $_POST["settings"],
1468 (int) $_POST["bookmarks"],
1469 (int) $_POST["notes"],
1470 (int) $_POST["calendar"]
1471 );
1472 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
1473 $ilCtrl->redirect($this, "");
1474 }
1475 else
1476 {
1477 $ilTabs->activateTab("export");
1478 $this->setHeader();
1479 $this->form->setValuesByPost();
1480 $tpl->setContent($this->form->getHtml());
1481 $tpl->show();
1482 }
1483 }
1484
1485}
1486
1487?>
$result
global $tpl
Definition: ilias.php:8
$location
Definition: buildRTE.php:44
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_DATE
const UDF_TYPE_SELECT
const UDF_TYPE_WYSIWYG
const UDF_TYPE_TEXT
static getInstancesByUserId($a_user_id)
static updatePositions($a_user_id, array $a_positions)
static getInstance()
Constructor.
This class represents a checkbox property in a property form.
This class represents a custom property in a property form.
static formatDate(ilDateTime $date)
Format a date @access public.
Class for single dates.
This class represents a file property in a property form.
static getInstance()
Factory.
This class represents a location property in a property form.
static updateLuceneIndex($a_obj_ids)
Update lucene index.
static isActivated()
Checks whether Map feature is activated.
static getDefaultSettings()
Get default longitude, latitude and zoom.
This class represents a non editable value in a property form.
static getDefaultPortfolio($a_user_id)
Get default portfolio of user.
getLatitude()
Get Latitude.
static _getPersonalPicturePath($a_usr_id, $a_size="small", $a_force_pic=false, $a_prevent_no_photo_image=false)
Get path to personal picture.
getCountry()
Get country (free text)
getLongitude()
Get Longitude.
getLocationZoom()
Get Location Zoom.
getStreet()
get street @access public
getCity()
get city @access public
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...
GUI class for personal profile.
saveProfile()
save user profile data
workWithUserSetting($setting)
Returns TRUE if working with the given user setting is allowed, FALSE otherwise.
initPersonalDataImportForm()
Init personal data import form.
showPublicProfileFields(ilPropertyformGUI $form, array $prefs, $parent=null, $anonymized=false)
Add fields to form.
importPersonalData()
Import personal data.
showPersonalData($a_no_init=false)
Personal data form.
showPublicProfile($a_no_init=false)
Public profile form.
initPersonalDataForm()
Init personal form.
savePersonalData()
Save personal data form.
savePublicProfile()
Save public profile form.
exportPersonalData()
Export personal data.
userSettingVisible($setting)
Returns TRUE if user setting is visible, FALSE otherwise.
removeUserPicture()
remove user image
getProfilePortfolio()
has profile set to a portfolio?
showExportImport()
Show export/import.
uploadUserPicture()
Upload user image.
downloadPersonalData()
Download personal data export file.
userSettingEnabled($setting)
Returns TRUE if user setting is enabled, FALSE otherwise.
importPersonalDataSelection()
Import personal data selection.
initPublicProfileForm()
Init public profile form.
addLocationToForm(ilPropertyFormGUI $a_form, ilObjUser $a_user)
Add location fields to form if activated.
This class represents a property form user interface.
addItem($a_item)
Add Item (Property, SectionHeader).
GUI class for public user profile presentation.
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.
static set($a_var, $a_val)
Set a value.
static get($a_var)
Get a value.
ILIAS Setting Class.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
static _getInstance()
Get instance.
Class for user related exception handling in ILIAS.
Class ilUserProfile.
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
static isConvertVersionAtLeast($a_version)
Compare convert version numbers.
static escapeShellArg($a_arg)
static getWebspaceDir($mode="filesystem")
get webspace directory
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static execConvert($args)
execute convert command
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static isLogin($a_login)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
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
$info
Definition: example_052.php:80
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
global $ilCtrl
Definition: ilias.php:18
input
Definition: langcheck.php:166
redirection script todo: (a better solution should control the processing via a xml file)
global $lng
Definition: privfeed.php:17
global $ilSetting
Definition: privfeed.php:17
$cmd
Definition: sahs_server.php:35
settings()
Definition: settings.php:2
if(!is_array($argv)) $options
$ilUser
Definition: imgupload.php:18