ILIAS  release_7 Revision v7.30-3-g800a261c036
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)
 ilMailTemplateContext constructor. More...
 
 getLanguage ()
 
 getId ()
 Returns a unique (in the context of mail template contexts) id. More...
 
 getTitle ()
 Returns a translated title (depending on the current language) which is displayed in the user interface. More...
 
 getDescription ()
 Returns a translated description (depending on the current language) which is displayed in the user interface. More...
 
 getPlaceholders ()
 Return an array of placeholders. More...
 
 getSpecificPlaceholders ()
 Return an array of placeholders. More...
 
 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

 $language
 
 $envHelper
 
 $languageHelper
 
 $userHelper
 
 $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 
)

ilMailTemplateContext constructor.

Parameters
OrgUnitUserService | null$orgUnitUserService
ilMailEnvironmentHelper | null$envHelper
ilMailUserHelper | null$usernameHelper
ilMailLanguageHelper | null$languageHelper

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

References $envHelper, $languageHelper, and $orgUnitUserService.

44  {
45  if (null === $orgUnitUserService) {
46  $orgUnitUserService = new OrgUnitUserService();
47  }
48  $this->orgUnitUserService = $orgUnitUserService;
49 
50  if (null === $envHelper) {
51  $envHelper = new ilMailEnvironmentHelper();
52  }
53  $this->envHelper = $envHelper;
54 
55  if (null === $usernameHelper) {
56  $usernameHelper = new ilMailUserHelper();
57  }
58  $this->userHelper = $usernameHelper;
59 
60  if (null === $languageHelper) {
61  $languageHelper = new ilMailLanguageHelper();
62  }
63  $this->languageHelper = $languageHelper;
64  }
Class ilMailEnvironmentHelper.
Class ilMailUserHelper.
Class ilMailLanguageHelper.

Member Function Documentation

◆ getDescription()

ilMailTemplateContext::getDescription ( )
abstract

Returns a translated description (depending on the current language) which is displayed in the user interface.

Returns
string

Referenced by getLanguage().

+ Here is the caller graph for this function:

◆ getGenericPlaceholders()

ilMailTemplateContext::getGenericPlaceholders ( )
private
Returns
array

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

References getLanguage().

Referenced by getPlaceholders(), and resolvePlaceholder().

95  : array
96  {
97  return [
98  'mail_salutation' => [
99  'placeholder' => 'MAIL_SALUTATION',
100  'label' => $this->getLanguage()->txt('mail_nacc_salutation')
101  ],
102  'first_name' => [
103  'placeholder' => 'FIRST_NAME',
104  'label' => $this->getLanguage()->txt('firstname')
105  ],
106  'last_name' => [
107  'placeholder' => 'LAST_NAME',
108  'label' => $this->getLanguage()->txt('lastname')
109  ],
110  'login' => [
111  'placeholder' => 'LOGIN',
112  'label' => $this->getLanguage()->txt('mail_nacc_login')
113  ],
114  'title' => [
115  'placeholder' => 'TITLE',
116  'label' => $this->getLanguage()->txt('mail_nacc_title'),
117  'supportsCondition' => true
118  ],
119  'firstname_last_name_superior' => [
120  'placeholder' => 'FIRSTNAME_LASTNAME_SUPERIOR',
121  'label' => $this->getLanguage()->txt('mail_firstname_last_name_superior')
122  ],
123  'ilias_url' => [
124  'placeholder' => 'ILIAS_URL',
125  'label' => $this->getLanguage()->txt('mail_nacc_ilias_url')
126  ],
127  'client_name' => [
128  'placeholder' => 'CLIENT_NAME',
129  'label' => $this->getLanguage()->txt('mail_nacc_client_name')
130  ],
131  ];
132  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getId()

ilMailTemplateContext::getId ( )
abstract

Returns a unique (in the context of mail template contexts) id.

Returns
string

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

+ Here is the caller graph for this function:

◆ getLanguage()

ilMailTemplateContext::getLanguage ( )
Returns
ilLanguage

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

References getDescription(), getId(), getTitle(), and language().

Referenced by ilCourseMailTemplateTutorContext\getCachedPeriodByObjId(), ilMailTemplateGenericContext\getDescription(), ilScormMailTemplateLPContext\getDescription(), getGenericPlaceholders(), ilMailTemplateGenericContext\getTitle(), and resolvePlaceholder().

69  : ilLanguage
70  {
71  return $this->language ? $this->language : $this->languageHelper->getCurrentLanguage();
72  }
language()
Definition: language.php:2
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPlaceholders()

ilMailTemplateContext::getPlaceholders ( )
final

Return an array of placeholders.

Returns
array

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

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

138  : array
139  {
140  $placeholders = $this->getGenericPlaceholders();
141  $specific = $this->getSpecificPlaceholders();
142 
143  return $placeholders + $specific;
144  }
getSpecificPlaceholders()
Return an array of placeholders.
+ Here is the call graph for this function:

◆ getSpecificPlaceholders()

ilMailTemplateContext::getSpecificPlaceholders ( )
abstract

◆ getTitle()

ilMailTemplateContext::getTitle ( )
abstract

Returns a translated title (depending on the current language) which is displayed in the user interface.

Returns
string

Referenced by getLanguage().

+ Here is the caller graph for this function:

◆ initLanguage()

ilMailTemplateContext::initLanguage ( ilObjUser  $user)
protected
Parameters
ilObjUser$user

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

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

Referenced by resolvePlaceholder().

264  : void
265  {
266  $this->initLanguageByIso2Code((string) $user->getLanguage());
267  }
getLanguage()
returns a 2char-language-string public
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initLanguageByIso2Code()

ilMailTemplateContext::initLanguageByIso2Code ( string  $isoCode)
protected
Parameters
string$isoCode

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

References language().

Referenced by initLanguage().

272  : void
273  {
274  $this->language = $this->languageHelper->getLanguageByIsoCode($isoCode);
275  $this->language->loadLanguageModule('mail');
276  }
language()
Definition: language.php:2
+ 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 
)
Parameters
string$placeholder_idThe unique (in the context of your class) placeholder id
array$context_parametersThe context parameters given by the mail system (array of key/value pairs)
ilObjUser | null$recipientThe recipient for this mail
bool$html_markupA flag whether or not the return value may contain HTML markup
Returns
string

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

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

178  : string {
179  if ($recipient !== null) {
180  $this->initLanguage($recipient);
181  }
182 
183  $resolved = '';
184 
185  switch (true) {
186  case ('mail_salutation' === $placeholder_id && $recipient !== null):
187  $resolved = $this->getLanguage()->txt('mail_salutation_n');
188  switch ($recipient->getGender()) {
189  case 'f':
190  $resolved = $this->getLanguage()->txt('mail_salutation_f');
191  break;
192 
193  case 'm':
194  $resolved = $this->getLanguage()->txt('mail_salutation_m');
195  break;
196 
197  case 'n':
198  $resolved = $this->getLanguage()->txt('mail_salutation_n');
199  break;
200  }
201  break;
202 
203  case ('first_name' === $placeholder_id && $recipient !== null):
204  $resolved = $recipient->getFirstname();
205  break;
206 
207  case ('last_name' === $placeholder_id && $recipient !== null):
208  $resolved = $recipient->getLastname();
209  break;
210 
211  case ('login' === $placeholder_id && $recipient !== null):
212  $resolved = $recipient->getLogin();
213  break;
214 
215  case ('title' === $placeholder_id && $recipient !== null):
216  $resolved = $recipient->getUTitle();
217  break;
218 
219  case 'ilias_url' === $placeholder_id:
220  $resolved = $this->envHelper->getHttpPath() . '/login.php?client_id=' . $this->envHelper->getClientId();
221  break;
222 
223  case 'client_name' === $placeholder_id:
224  $resolved = $this->envHelper->getClientId();
225  break;
226 
227  case 'firstname_last_name_superior' === $placeholder_id && $recipient !== null:
228  $ouUsers = $this->orgUnitUserService->getUsers([$recipient->getId()], true);
229  foreach ($ouUsers as $ouUser) {
230  $superiors = $ouUser->getSuperiors();
231 
232  $superiorUsrIds = array_map(function (ilOrgUnitUser $ouUser) {
233  return $ouUser->getUserId();
234  }, $superiors);
235 
236  $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
237 
238  $resolved = implode(', ', $usrIdByNameMap);
239  break;
240  }
241  break;
242 
243  case !in_array($placeholder_id, array_keys($this->getGenericPlaceholders())):
244  $datePresentationLanguage = ilDatePresentation::getLanguage();
246 
247  $resolved = $this->resolveSpecificPlaceholder(
248  $placeholder_id,
249  $context_parameters,
250  $recipient,
251  $html_markup
252  );
253 
254  ilDatePresentation::setLanguage($datePresentationLanguage);
255  break;
256  }
257 
258  return (string) $resolved;
259  }
getLogin()
get login / username public
getFirstname()
get firstname public
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null, bool $html_markup=false)
static setLanguage($a_lng)
set language
Class for date presentation.
getLastname()
get lastname public
getId()
get object id public
getUTitle()
get user title (note: don't mix up this method with getTitle() that is derived from ilObject and gets...
getGender()
get gender public
+ Here is the call graph for this function:

◆ resolveSpecificPlaceholder()

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

Field Documentation

◆ $envHelper

◆ $language

ilMailTemplateContext::$language
protected

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

◆ $languageHelper

◆ $orgUnitUserService

◆ $userHelper

ilMailTemplateContext::$userHelper
protected

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


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