ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilUserProfileBadge.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 require_once "./Services/Badge/interfaces/interface.ilBadgeType.php";
5 require_once "./Services/Badge/interfaces/interface.ilBadgeAuto.php";
6 
16 {
17  public function getId()
18  {
19  return "profile";
20  }
21 
22  public function getCaption()
23  {
24  global $DIC;
25 
26  $lng = $DIC['lng'];
27  return $lng->txt("badge_user_profile");
28  }
29 
30  public function isSingleton()
31  {
32  return false;
33  }
34 
35  public function getValidObjectTypes()
36  {
37  return array("bdga");
38  }
39 
40  public function getConfigGUIInstance()
41  {
42  include_once "Services/User/classes/Badges/class.ilUserProfileBadgeGUI.php";
43  return new ilUserProfileBadgeGUI();
44  }
45 
46  public function evaluate($a_user_id, array $a_params, array $a_config)
47  {
48  global $DIC;
49 
50  $ilSetting = $DIC['ilSetting'];
51 
52  $user = new ilObjUser($a_user_id);
53 
54  // active profile portfolio?
55  $has_prtf = false;
56  if ($ilSetting->get('user_portfolios')) {
57  include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
58  $has_prtf = ilObjPortfolio::getDefaultPortfolio($a_user_id);
59  }
60  if (!$has_prtf) {
61  // is profile public?
62  if (!in_array($user->getPref("public_profile"), array("y", "g"))) {
63  return false;
64  }
65  }
66 
67  // use getter mapping from user profile
68  include_once("./Services/User/classes/class.ilUserProfile.php");
69  $up = new ilUserProfile();
70  $pfields = $up->getStandardFields();
71 
72  // check for value AND publication status
73 
74  foreach ($a_config["profile"] as $field) {
75  $field = substr($field, 4);
76 
77  if (substr($field, 0, 4) == "udf_") {
78  $udf_field_id = substr($field, 4);
79  if ($user->getPref("public_udf_" . $udf_field_id) != "y") {
80  return false;
81  }
82  $udf = $user->getUserDefinedData();
83  if ($udf["f_" . $udf_field_id] == "") {
84  return false;
85  }
86  }
87  // picture
88  else {
89  if ($user->getPref("public_" . $field) != "y") {
90  return false;
91  }
92  if ($field == "upload") {
93  if (!ilObjUser::_getPersonalPicturePath($a_user_id, "xsmall", true, true)) {
94  return false;
95  }
96  }
97  // use profile mapping if possible
98  else {
99  if (isset($pfields[$field]["method"])) {
100  $m = $pfields[$field]["method"];
101  if (!$user->{$m}()) {
102  return false;
103  }
104  }
105  }
106  }
107  }
108 
109  return true;
110  }
111 }
global $DIC
Definition: saml.php:7
Badge type interface.
Class ilUserProfile.
getId()
Get typ id (unique for component)
Manual Badge Auto.
$lng
isSingleton()
Can only be created once?
getValidObjectTypes()
Get valid (repository) "parent" object types.
evaluate($a_user_id, array $a_params, array $a_config)
Evaluate if given user has earned badge.
$user
Definition: migrateto20.php:57
getConfigGUIInstance()
Get GUI config instance.
global $ilSetting
Definition: privfeed.php:17
static getDefaultPortfolio($a_user_id)
Get default portfolio of user.