ILIAS  release_7 Revision v7.30-3-g800a261c036
ilUserAvatarResolver Class Reference

Class ilUserAvatarResolver. More...

+ Collaboration diagram for ilUserAvatarResolver:

Public Member Functions

 __construct (int $user_id)
 constructor. More...
 
 getAvatar (bool $name_as_set_as_text_closely=false)
 
 setForcePicture (bool $force_image)
 
 setSize (string $size)
 

Protected Attributes

 $ui
 
 $letter_avatars_activated
 

Private Member Functions

 init ()
 
 useUploadedFile ()
 

Private Attributes

 $user_id
 
 $login
 
 $firstname
 
 $lastname
 
 $has_public_profile = false
 
 $has_public_upload = false
 
 $uploaded_file
 
 $abbreviation
 
 $force_image = false
 
 $size = 'small'
 
 $db
 
 $lng
 
 $user
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilUserAvatarResolver::__construct ( int  $user_id)

constructor.

Parameters
int$user_id

Definition at line 78 of file class.ilUserAvatarResolver.php.

References $DIC, $user_id, init(), ui(), and user().

79  {
80  global $DIC;
81 
82  $this->db = $DIC->database();
83  $this->ui = $DIC->ui()->factory();
84  $this->lng = $DIC->language();
85  $this->user = $DIC->user();
86  $this->user_id = $user_id;
87  $this->letter_avatars_activated = (bool) $DIC->settings()->get('letter_avatars');
88  $this->init();
89  }
user()
Definition: user.php:4
global $DIC
Definition: goto.php:24
ui()
Definition: ui.php:5
+ Here is the call graph for this function:

Member Function Documentation

◆ getAvatar()

ilUserAvatarResolver::getAvatar ( bool  $name_as_set_as_text_closely = false)
Parameters
bool$name_as_text_visible_closelyif the name is set as text close to the Avatar, the alternative text for screenreaders will be set differently, to reduce redundancy for screenreaders. See rules on the Avatar Symbol in the UI Components
Returns
Avatar

Definition at line 146 of file class.ilUserAvatarResolver.php.

References $DIC, $login, ilObjUser\_lookupLogin(), ilUtil\getImagePath(), login(), ui(), user(), and useUploadedFile().

146  : Avatar
147  {
148  if ($name_as_set_as_text_closely) {
149  $alternative_text = $this->lng->txt("user_avatar");
150  } elseif ($this->user_id == $this->user->getId() && !$this->user::_isAnonymous($this->user_id)) {
151  $alternative_text = $this->lng->txt("current_user_avatar");
152  } else {
153  $alternative_text = $this->lng->txt("user_avatar_of") . " " . $this->login;
154  }
155 
156  if ($this->useUploadedFile()) {
157  return $this->ui->symbol()->avatar()->picture($this->uploaded_file, $this->login)
158  ->withAlternativeText($alternative_text);
159  }
160 
161  if ($this->letter_avatars_activated === false) {
162  return $this->ui->symbol()->avatar()->picture(
163  \ilUtil::getImagePath('no_photo_xsmall.jpg'),
164  ilObjUser::_lookupLogin($this->user_id)
165  );
166  }
167 
168  return $this->ui->symbol()->avatar()->letter($this->abbreviation)->withAlternativeText($alternative_text);
169  }
static _lookupLogin($a_user_id)
lookup login
login()
Definition: login.php:2
user()
Definition: user.php:4
This describes how a letter or a picture avatar could be modified during construction of UI...
Definition: Avatar.php:8
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
ui()
Definition: ui.php:5
+ Here is the call graph for this function:

◆ init()

ilUserAvatarResolver::init ( )
private

Definition at line 91 of file class.ilUserAvatarResolver.php.

References $in, $res, ilUtil\getWebspaceDir(), login(), and ilStr\subStr().

Referenced by __construct().

91  : void
92  {
93  $in = $this->db->in('usr_pref.keyword', array('public_upload', 'public_profile'), false, 'text');
94  $res = $this->db->queryF(
95  "
96  SELECT usr_pref.*, ud.login, ud.firstname, ud.lastname
97  FROM usr_data ud LEFT JOIN usr_pref ON usr_pref.usr_id = ud.usr_id AND $in
98  WHERE ud.usr_id = %s",
99  array('integer'),
100  array($this->user_id)
101  );
102 
103  while ($row = $this->db->fetchAssoc($res)) { // MUST be loop
104  $this->login = $row['login'];
105  $this->firstname = $row['firstname'];
106  $this->lastname = $row['lastname'];
107 
108  switch ($row['keyword']) {
109  case 'public_upload':
110  $this->has_public_upload = $row['value'] === 'y';
111  break;
112  case 'public_profile':
113  $this->has_public_profile = ($row['value'] === 'y' || $row['value'] === 'g');
114  break;
115  }
116  }
117 
118  // Uploaded file
119  $webspace_dir = '';
120  if (defined('ILIAS_MODULE')) {
121  $webspace_dir = ('.' . $webspace_dir);
122  }
123  $webspace_dir .= ('./' . ltrim(ilUtil::getWebspaceDir(), "./"));
124 
125  $image_dir = $webspace_dir . '/usr_images';
126  $this->uploaded_file = $image_dir . '/usr_' . $this->user_id . '.jpg';
127 
128  if ($this->has_public_profile) {
129  $this->abbreviation = ilStr::subStr($this->firstname, 0, 1) . ilStr::subStr($this->lastname, 0, 1);
130  } else {
131  $this->abbreviation = ilStr::subStr($this->login, 0, 2);
132  }
133  }
login()
Definition: login.php:2
static subStr($a_str, $a_start, $a_length=null)
Definition: class.ilStr.php:15
foreach($_POST as $key=> $value) $res
if(php_sapi_name() !='cli') $in
Definition: Utf8Test.php:37
static getWebspaceDir($mode="filesystem")
get webspace directory
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setForcePicture()

ilUserAvatarResolver::setForcePicture ( bool  $force_image)
Parameters
bool$force_image

Definition at line 189 of file class.ilUserAvatarResolver.php.

References $force_image.

189  : void
190  {
191  $this->force_image = $force_image;
192  }

◆ setSize()

ilUserAvatarResolver::setSize ( string  $size)
Parameters
string$size

Definition at line 197 of file class.ilUserAvatarResolver.php.

References $size.

197  : void
198  {
199  if ($size === 'small' || $size === 'big') {
200  $size = 'xsmall';
201  }
202 
203  $this->size = $size;
204  }

◆ useUploadedFile()

ilUserAvatarResolver::useUploadedFile ( )
private

Definition at line 135 of file class.ilUserAvatarResolver.php.

Referenced by getAvatar().

135  : bool
136  {
137  return (($this->has_public_upload && $this->has_public_profile) || $this->force_image) && is_file($this->uploaded_file);
138  }
+ Here is the caller graph for this function:

Field Documentation

◆ $abbreviation

ilUserAvatarResolver::$abbreviation
private

Definition at line 43 of file class.ilUserAvatarResolver.php.

◆ $db

ilUserAvatarResolver::$db
private

Definition at line 55 of file class.ilUserAvatarResolver.php.

◆ $firstname

ilUserAvatarResolver::$firstname
private

Definition at line 23 of file class.ilUserAvatarResolver.php.

◆ $force_image

ilUserAvatarResolver::$force_image = false
private

Definition at line 47 of file class.ilUserAvatarResolver.php.

Referenced by setForcePicture().

◆ $has_public_profile

ilUserAvatarResolver::$has_public_profile = false
private

Definition at line 31 of file class.ilUserAvatarResolver.php.

◆ $has_public_upload

ilUserAvatarResolver::$has_public_upload = false
private

Definition at line 35 of file class.ilUserAvatarResolver.php.

◆ $lastname

ilUserAvatarResolver::$lastname
private

Definition at line 27 of file class.ilUserAvatarResolver.php.

◆ $letter_avatars_activated

ilUserAvatarResolver::$letter_avatars_activated
protected

Definition at line 72 of file class.ilUserAvatarResolver.php.

◆ $lng

ilUserAvatarResolver::$lng
private

Definition at line 59 of file class.ilUserAvatarResolver.php.

◆ $login

ilUserAvatarResolver::$login
private

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

Referenced by getAvatar().

◆ $size

ilUserAvatarResolver::$size = 'small'
private

Definition at line 51 of file class.ilUserAvatarResolver.php.

Referenced by setSize().

◆ $ui

ilUserAvatarResolver::$ui
protected

Definition at line 67 of file class.ilUserAvatarResolver.php.

◆ $uploaded_file

ilUserAvatarResolver::$uploaded_file
private

Definition at line 39 of file class.ilUserAvatarResolver.php.

◆ $user

ilUserAvatarResolver::$user
private

Definition at line 63 of file class.ilUserAvatarResolver.php.

◆ $user_id

ilUserAvatarResolver::$user_id
private

Definition at line 15 of file class.ilUserAvatarResolver.php.

Referenced by __construct().


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