ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilMailTemplateContext Class Reference

Class ilMailTemplateContext. More...

+ Inheritance diagram for ilMailTemplateContext:
+ Collaboration diagram for ilMailTemplateContext:

Public Member Functions

 __construct (OrgUnitUserService $orgUnitUserService=null, ilMailEnvironmentHelper $envHelper=null, ilMailUserHelper $usernameHelper=null, ilMailLanguageHelper $languageHelper=null)
 
 getLanguage ()
 
 getId ()
 
 getTitle ()
 
 getDescription ()
 
 getPlaceholders ()
 
 getSpecificPlaceholders ()
 
 resolveSpecificPlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
 
 resolvePlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
 

Protected Member Functions

 initLanguage (ilObjUser $user)
 
 initLanguageByIso2Code (string $isoCode)
 

Protected Attributes

ilLanguage $language
 
ilMailEnvironmentHelper $envHelper
 
ilMailLanguageHelper $languageHelper
 
ilMailUserHelper $userHelper
 
OrgUnitUserService $orgUnitUserService
 

Private Member Functions

 getGenericPlaceholders ()
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilMailTemplateContext::__construct ( OrgUnitUserService  $orgUnitUserService = null,
ilMailEnvironmentHelper  $envHelper = null,
ilMailUserHelper  $usernameHelper = null,
ilMailLanguageHelper  $languageHelper = null 
)

Definition at line 37 of file class.ilMailTemplateContext.php.

42  {
43  $this->orgUnitUserService = $orgUnitUserService ?? new OrgUnitUserService();
44  $this->envHelper = $envHelper ?? new ilMailEnvironmentHelper();
45  $this->userHelper = $usernameHelper ?? new ilMailUserHelper();
46  $this->languageHelper = $languageHelper ?? new ilMailLanguageHelper();
47  }
Class ilMailEnvironmentHelper.
Class ilMailUserHelper.
Class ilMailLanguageHelper.

Member Function Documentation

◆ getDescription()

ilMailTemplateContext::getDescription ( )
abstract

Referenced by getLanguage().

+ Here is the caller graph for this function:

◆ getGenericPlaceholders()

ilMailTemplateContext::getGenericPlaceholders ( )
private

Definition at line 60 of file class.ilMailTemplateContext.php.

References getLanguage().

Referenced by getPlaceholders(), and resolvePlaceholder().

60  : array
61  {
62  return [
63  'mail_salutation' => [
64  'placeholder' => 'MAIL_SALUTATION',
65  'label' => $this->getLanguage()->txt('mail_nacc_salutation'),
66  ],
67  'first_name' => [
68  'placeholder' => 'FIRST_NAME',
69  'label' => $this->getLanguage()->txt('firstname'),
70  ],
71  'last_name' => [
72  'placeholder' => 'LAST_NAME',
73  'label' => $this->getLanguage()->txt('lastname'),
74  ],
75  'login' => [
76  'placeholder' => 'LOGIN',
77  'label' => $this->getLanguage()->txt('mail_nacc_login'),
78  ],
79  'title' => [
80  'placeholder' => 'TITLE',
81  'label' => $this->getLanguage()->txt('mail_nacc_title'),
82  'supportsCondition' => true,
83  ],
84  'firstname_last_name_superior' => [
85  'placeholder' => 'FIRSTNAME_LASTNAME_SUPERIOR',
86  'label' => $this->getLanguage()->txt('mail_firstname_last_name_superior'),
87  ],
88  'ilias_url' => [
89  'placeholder' => 'ILIAS_URL',
90  'label' => $this->getLanguage()->txt('mail_nacc_ilias_url'),
91  ],
92  'installation_name' => [
93  'placeholder' => 'INSTALLATION_NAME',
94  'label' => $this->getLanguage()->txt('mail_nacc_installation_name'),
95  ],
96  ];
97  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getId()

ilMailTemplateContext::getId ( )
abstract

Referenced by ilMailTemplateContextService\createEntry(), and getLanguage().

+ Here is the caller graph for this function:

◆ getLanguage()

ilMailTemplateContext::getLanguage ( )

◆ getPlaceholders()

ilMailTemplateContext::getPlaceholders ( )
final

Definition at line 99 of file class.ilMailTemplateContext.php.

References getGenericPlaceholders(), getSpecificPlaceholders(), and resolveSpecificPlaceholder().

99  : array
100  {
101  $placeholders = $this->getGenericPlaceholders();
102  $specific = $this->getSpecificPlaceholders();
103 
104  return array_merge($placeholders, $specific);
105  }
+ Here is the call graph for this function:

◆ getSpecificPlaceholders()

◆ getTitle()

ilMailTemplateContext::getTitle ( )
abstract

Referenced by getLanguage().

+ Here is the caller graph for this function:

◆ initLanguage()

ilMailTemplateContext::initLanguage ( ilObjUser  $user)
protected

Definition at line 204 of file class.ilMailTemplateContext.php.

References ilObjUser\getLanguage(), and initLanguageByIso2Code().

Referenced by resolvePlaceholder().

204  : void
205  {
206  $this->initLanguageByIso2Code($user->getLanguage());
207  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initLanguageByIso2Code()

ilMailTemplateContext::initLanguageByIso2Code ( string  $isoCode)
protected

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

References ILIAS\UI\examples\Symbol\Glyph\Language\language().

Referenced by initLanguage().

209  : void
210  {
211  $this->language = $this->languageHelper->getLanguageByIsoCode($isoCode);
212  $this->language->loadLanguageModule('mail');
213  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolvePlaceholder()

ilMailTemplateContext::resolvePlaceholder ( string  $placeholder_id,
array  $context_parameters,
ilObjUser  $recipient = null,
bool  $html_markup = false 
)

Definition at line 116 of file class.ilMailTemplateContext.php.

References getGenericPlaceholders(), getLanguage(), ilDatePresentation\getLanguage(), OrgUnit\User\ilOrgUnitUser\getUserId(), initLanguage(), resolveSpecificPlaceholder(), and ilDatePresentation\setLanguage().

121  : string {
122  if ($recipient !== null) {
123  $this->initLanguage($recipient);
124  }
125 
126  $resolved = '';
127 
128  switch (true) {
129  case ('mail_salutation' === $placeholder_id && $recipient !== null):
130  $resolved = $this->getLanguage()->txt('mail_salutation_n');
131  switch ($recipient->getGender()) {
132  case 'f':
133  $resolved = $this->getLanguage()->txt('mail_salutation_f');
134  break;
135 
136  case 'm':
137  $resolved = $this->getLanguage()->txt('mail_salutation_m');
138  break;
139 
140  case 'n':
141  $resolved = $this->getLanguage()->txt('mail_salutation_n');
142  break;
143  }
144  break;
145 
146  case ('first_name' === $placeholder_id && $recipient !== null):
147  $resolved = $recipient->getFirstname();
148  break;
149 
150  case ('last_name' === $placeholder_id && $recipient !== null):
151  $resolved = $recipient->getLastname();
152  break;
153 
154  case ('login' === $placeholder_id && $recipient !== null):
155  $resolved = $recipient->getLogin();
156  break;
157 
158  case ('title' === $placeholder_id && $recipient !== null):
159  $resolved = $recipient->getUTitle();
160  break;
161 
162  case 'ilias_url' === $placeholder_id:
163  $resolved = $this->envHelper->getHttpPath() . ' ';
164  break;
165 
166  case 'installation_name' === $placeholder_id:
167  $resolved = $this->envHelper->getClientId();
168  break;
169 
170  case 'firstname_last_name_superior' === $placeholder_id && $recipient !== null:
171  $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()], true);
172  foreach ($ouUsers as $ouUser) {
173  $superiors = $ouUser->getSuperiors();
174 
175  $superiorUsrIds = array_map(static function (ilOrgUnitUser $ouUser): int {
176  return $ouUser->getUserId();
177  }, $superiors);
178 
179  $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
180 
181  $resolved = implode(', ', $usrIdByNameMap);
182  break;
183  }
184  break;
185 
186  case !array_key_exists($placeholder_id, $this->getGenericPlaceholders()):
187  $datePresentationLanguage = ilDatePresentation::getLanguage();
189 
190  $resolved = $this->resolveSpecificPlaceholder(
191  $placeholder_id,
192  $context_parameters,
193  $recipient,
194  $html_markup
195  );
196 
197  ilDatePresentation::setLanguage($datePresentationLanguage);
198  break;
199  }
200 
201  return $resolved;
202  }
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
static setLanguage(ilLanguage $a_lng)
+ Here is the call graph for this function:

◆ resolveSpecificPlaceholder()

Field Documentation

◆ $envHelper

◆ $language

ilLanguage ilMailTemplateContext::$language
protected

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

◆ $languageHelper

◆ $orgUnitUserService

◆ $userHelper

ilMailUserHelper ilMailTemplateContext::$userHelper
protected

Definition at line 34 of file class.ilMailTemplateContext.php.


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