ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
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 ()
 
 getNestedPlaceholders ()
 
 getPlaceholders ()
 
 getSpecificPlaceholders ()
 
 resolveSpecificPlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
 
 resolvePlaceholder (string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
 

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
Returns
array{mail_salutation: array{placeholder: string, label: string, supportsNestedPlaceholders?: true}, first_name: array{placeholder: string, label: string}, last_name: array{placeholder: string, label: string}, login: array{placeholder: string, label: string}, title: array{placeholder: string, label: string, supportsCondition: true}, firstname_lastname_superior: array{placeholder: string, label: string}, ilias_url: array{placeholder: string, label: string}, installation_name: array{placeholder: string, label: string}}

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

References getLanguage().

Referenced by getPlaceholders(), and resolvePlaceholder().

63  : array
64  {
65  return [
66  'mail_salutation' => [
67  'placeholder' => 'MAIL_SALUTATION',
68  'label' => $this->getLanguage()->txt('mail_nacc_salutation'),
69  'supportsNestedPlaceholders' => true,
70  ],
71  'first_name' => [
72  'placeholder' => 'FIRST_NAME',
73  'label' => $this->getLanguage()->txt('firstname'),
74  ],
75  'last_name' => [
76  'placeholder' => 'LAST_NAME',
77  'label' => $this->getLanguage()->txt('lastname'),
78  ],
79  'login' => [
80  'placeholder' => 'LOGIN',
81  'label' => $this->getLanguage()->txt('mail_nacc_login'),
82  ],
83  'title' => [
84  'placeholder' => 'TITLE',
85  'label' => $this->getLanguage()->txt('mail_nacc_title'),
86  'supportsCondition' => true,
87  ],
88  'firstname_lastname_superior' => [
89  'placeholder' => 'FIRSTNAME_LASTNAME_SUPERIOR',
90  'label' => $this->getLanguage()->txt('mail_firstname_last_name_superior'),
91  ],
92  'ilias_url' => [
93  'placeholder' => 'ILIAS_URL',
94  'label' => $this->getLanguage()->txt('mail_nacc_ilias_url'),
95  ],
96  'installation_name' => [
97  'placeholder' => 'INSTALLATION_NAME',
98  'label' => $this->getLanguage()->txt('mail_nacc_installation_name'),
99  ],
100  ];
101  }
+ 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 ( )

◆ getNestedPlaceholders()

ilMailTemplateContext::getNestedPlaceholders ( )
Returns
list<string>

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

References ILIAS\LTI\ToolProvider\$key, and getPlaceholders().

106  : array
107  {
108  $nested_placeholders = [];
109  foreach ($this->getPlaceholders() as $key => $ph) {
110  if (isset($ph['supportsNestedPlaceholders']) && $ph['supportsNestedPlaceholders']) {
111  $nested_placeholders[] = $ph['placeholder'];
112  }
113  }
114 
115  return $nested_placeholders;
116  }
string $key
Consumer key/client ID value.
Definition: System.php:193
+ Here is the call graph for this function:

◆ getPlaceholders()

ilMailTemplateContext::getPlaceholders ( )
final

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

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

Referenced by getNestedPlaceholders().

118  : array
119  {
120  $placeholders = $this->getGenericPlaceholders();
121  $specific = $this->getSpecificPlaceholders();
122 
123  return array_merge($placeholders, $specific);
124  }
+ Here is the call graph for this function:
+ Here is the caller 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 220 of file class.ilMailTemplateContext.php.

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

Referenced by resolvePlaceholder().

220  : void
221  {
222  $this->initLanguageByIso2Code($user->getLanguage());
223  }
+ 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 225 of file class.ilMailTemplateContext.php.

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

Referenced by initLanguage().

225  : void
226  {
227  $this->language = $this->languageHelper->getLanguageByIsoCode($isoCode);
228  $this->language->loadLanguageModule('mail');
229  }
+ 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 
)

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

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

138  : string {
139  if ($recipient !== null) {
140  $this->initLanguage($recipient);
141  }
142 
143  $placeholder_id = strtolower($placeholder_id);
144  $resolved = '';
145  switch (true) {
146  case ('mail_salutation' === $placeholder_id && $recipient !== null):
147  $resolved = $this->getLanguage()->txt('mail_salutation_n');
148  switch ($recipient->getGender()) {
149  case 'f':
150  $resolved = $this->getLanguage()->txt('mail_salutation_f');
151  break;
152 
153  case 'm':
154  $resolved = $this->getLanguage()->txt('mail_salutation_m');
155  break;
156 
157  case 'n':
158  $resolved = $this->getLanguage()->txt('mail_salutation_n');
159  break;
160  }
161  break;
162 
163  case ('first_name' === $placeholder_id && $recipient !== null):
164  $resolved = $recipient->getFirstname();
165  break;
166 
167  case ('last_name' === $placeholder_id && $recipient !== null):
168  $resolved = $recipient->getLastname();
169  break;
170 
171  case ('login' === $placeholder_id && $recipient !== null):
172  $resolved = $recipient->getLogin();
173  break;
174 
175  case ('title' === $placeholder_id && $recipient !== null):
176  $resolved = $recipient->getUTitle();
177  break;
178 
179  case 'ilias_url' === $placeholder_id:
180  $resolved = $this->envHelper->getHttpPath() . ' ';
181  break;
182 
183  case 'installation_name' === $placeholder_id:
184  $resolved = $this->envHelper->getClientId();
185  break;
186 
187  case 'firstname_lastname_superior' === $placeholder_id && $recipient !== null:
188  $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()], true);
189  foreach ($ouUsers as $ouUser) {
190  $superiors = $ouUser->getSuperiors();
191 
192  $superiorUsrIds = array_map(static function (ilOrgUnitUser $ouUser): int {
193  return $ouUser->getUserId();
194  }, $superiors);
195 
196  $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
197 
198  $resolved = implode(', ', $usrIdByNameMap);
199  break;
200  }
201  break;
202 
203  case !array_key_exists($placeholder_id, $this->getGenericPlaceholders()):
204  $datePresentationLanguage = ilDatePresentation::getLanguage();
206 
207  $resolved = $this->resolveSpecificPlaceholder(
208  $placeholder_id,
209  $context_parameters,
210  $recipient
211  );
212 
213  ilDatePresentation::setLanguage($datePresentationLanguage);
214  break;
215  }
216 
217  return $resolved;
218  }
static setLanguage(ilLanguage $a_lng)
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
+ 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: