19 declare(strict_types=1);
    51         return $this->
language ?? $this->languageHelper->getCurrentLanguage();
    54     abstract public function getId(): string;
    56     abstract public function getTitle(): string;
    66             'mail_salutation' => [
    67                 'placeholder' => 
'MAIL_SALUTATION',
    68                 'label' => $this->
getLanguage()->txt(
'mail_nacc_salutation'),
    69                 'supportsNestedPlaceholders' => 
true,
    72                 'placeholder' => 
'FIRST_NAME',
    76                 'placeholder' => 
'LAST_NAME',
    80                 'placeholder' => 
'LOGIN',
    81                 'label' => $this->
getLanguage()->txt(
'mail_nacc_login'),
    84                 'placeholder' => 
'TITLE',
    85                 'label' => $this->
getLanguage()->txt(
'mail_nacc_title'),
    86                 'supportsCondition' => 
true,
    88             'firstname_lastname_superior' => [
    89                 'placeholder' => 
'FIRSTNAME_LASTNAME_SUPERIOR',
    90                 'label' => $this->
getLanguage()->txt(
'mail_firstname_last_name_superior'),
    93                 'placeholder' => 
'ILIAS_URL',
    94                 'label' => $this->
getLanguage()->txt(
'mail_nacc_ilias_url'),
    96             'installation_name' => [
    97                 'placeholder' => 
'INSTALLATION_NAME',
    98                 'label' => $this->
getLanguage()->txt(
'mail_nacc_installation_name'),
   108         $nested_placeholders = [];
   110             if (isset($ph[
'supportsNestedPlaceholders']) && $ph[
'supportsNestedPlaceholders']) {
   111                 $nested_placeholders[] = $ph[
'placeholder'];
   115         return $nested_placeholders;
   123         return array_merge($placeholders, $specific);
   129         string $placeholder_id,
   130         array $context_parameters,
   135         string $placeholder_id,
   136         array $context_parameters,
   139         if ($recipient !== null) {
   143         $placeholder_id = strtolower($placeholder_id);
   146             case (
'mail_salutation' === $placeholder_id && $recipient !== null):
   147                 $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
   148                 switch ($recipient->getGender()) {
   150                         $resolved = $this->
getLanguage()->txt(
'mail_salutation_f');
   154                         $resolved = $this->
getLanguage()->txt(
'mail_salutation_m');
   158                         $resolved = $this->
getLanguage()->txt(
'mail_salutation_n');
   163             case (
'first_name' === $placeholder_id && $recipient !== null):
   164                 $resolved = $recipient->getFirstname();
   167             case (
'last_name' === $placeholder_id && $recipient !== null):
   168                 $resolved = $recipient->getLastname();
   171             case (
'login' === $placeholder_id && $recipient !== null):
   172                 $resolved = $recipient->getLogin();
   175             case (
'title' === $placeholder_id && $recipient !== null):
   176                 $resolved = $recipient->getUTitle();
   179             case 'ilias_url' === $placeholder_id:
   180                 $resolved = $this->envHelper->getHttpPath() . 
' ';
   183             case 'installation_name' === $placeholder_id:
   184                 $resolved = $this->envHelper->getClientId();
   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();
   192                     $superiorUsrIds = array_map(
static function (
ilOrgUnitUser $ouUser): 
int {
   196                     $usrIdByNameMap = $this->userHelper->getUsernameMapForIds($superiorUsrIds);
   198                     $resolved = implode(
', ', $usrIdByNameMap);
   227         $this->
language = $this->languageHelper->getLanguageByIsoCode($isoCode);
   228         $this->
language->loadLanguageModule(
'mail');
 
OrgUnitUserService $orgUnitUserService
 
initLanguageByIso2Code(string $isoCode)
 
getSpecificPlaceholders()
 
resolvePlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
 
Class ilMailEnvironmentHelper. 
 
static setLanguage(ilLanguage $a_lng)
 
ilMailLanguageHelper $languageHelper
 
initLanguage(ilObjUser $user)
 
resolveSpecificPlaceholder(string $placeholder_id, array $context_parameters, ilObjUser $recipient=null)
 
Class ilMailLanguageHelper. 
 
Class ilMailTemplateContext. 
 
__construct(OrgUnitUserService $orgUnitUserService=null, ilMailEnvironmentHelper $envHelper=null, ilMailUserHelper $usernameHelper=null, ilMailLanguageHelper $languageHelper=null)
 
ilMailUserHelper $userHelper
 
ilMailEnvironmentHelper $envHelper