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.

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

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

+ 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.

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
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
This describes how a letter or a picture avatar could be modified during construction of UI.
Definition: Avatar.php:9
login()
Definition: login.php:2

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

+ Here is the call graph for this function:

◆ init()

ilUserAvatarResolver::init ( )
private

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

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 }
if(php_sapi_name() !='cli') $in
Definition: Utf8Test.php:37
static subStr($a_str, $a_start, $a_length=null)
Definition: class.ilStr.php:15
static getWebspaceDir($mode="filesystem")
get webspace directory
foreach($_POST as $key=> $value) $res

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

Referenced by __construct().

+ 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.

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

References $force_image.

◆ setSize()

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

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

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

References $size.

◆ useUploadedFile()

ilUserAvatarResolver::useUploadedFile ( )
private

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

135 : bool
136 {
137 return (($this->has_public_upload && $this->has_public_profile) || $this->force_image) && is_file($this->uploaded_file);
138 }

Referenced by getAvatar().

+ 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: