ILIAS  release_8 Revision v8.23
ilMailTemplatePlaceholderResolver Class Reference

Class ilMailTemplatePlaceholderResolver. More...

+ Collaboration diagram for ilMailTemplatePlaceholderResolver:

Public Member Functions

 __construct (ilMailTemplateContext $context, string $a_message)
 
 resolve (ilObjUser $user=null, array $contextParameters=[], bool $replaceEmptyPlaceholders=true)
 

Protected Attributes

ilMailTemplateContext $context
 
string $message = ''
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilMailTemplatePlaceholderResolver::__construct ( ilMailTemplateContext  $context,
string  $a_message 
)

Definition at line 30 of file class.ilMailTemplatePlaceholderResolver.php.

References $context.

31  {
32  $this->context = $context;
33  $this->message = $a_message;
34  }

Member Function Documentation

◆ resolve()

ilMailTemplatePlaceholderResolver::resolve ( ilObjUser  $user = null,
array  $contextParameters = [],
bool  $replaceEmptyPlaceholders = true 
)

Definition at line 36 of file class.ilMailTemplatePlaceholderResolver.php.

References ILIAS\LTI\ToolProvider\$key, and $message.

40  : string {
42 
43  foreach ($this->context->getPlaceholders() as $key => $ph_definition) {
44  $result = $this->context->resolvePlaceholder($key, $contextParameters, $user);
45  if (!$replaceEmptyPlaceholders && $result === '') {
46  continue;
47  }
48 
49  $startTag = '\[IF_' . strtoupper($key) . '\]';
50  $endTag = '\[\/IF_' . strtoupper($key) . '\]';
51 
52  if ($result !== '') {
53  $message = str_replace('[' . $ph_definition['placeholder'] . ']', $result, $message);
54 
55  if (array_key_exists('supportsCondition', $ph_definition) &&
56  $ph_definition['supportsCondition']
57  ) {
58  $message = preg_replace(
59  '/' . $startTag . '(.*?)' . $endTag . '/imsU',
60  '$1',
61  $message
62  );
63  }
64  } else {
65  $message = preg_replace(
66  '/[[:space:]]\[' . $ph_definition['placeholder'] . '\][[:space:]]/ims',
67  ' ',
68  $message
69  );
70  $message = preg_replace(
71  '/\[' . $ph_definition['placeholder'] . '\]/ims',
72  '',
73  $message
74  );
75 
76  if (array_key_exists('supportsCondition', $ph_definition) &&
77  $ph_definition['supportsCondition']
78  ) {
79  $message = preg_replace(
80  '/' . $startTag . '.*?' . $endTag . '/imsU',
81  '',
82  $message
83  );
84  }
85  }
86  }
87 
88  return $message;
89  }
string $key
Consumer key/client ID value.
Definition: System.php:193

Field Documentation

◆ $context

ilMailTemplateContext ilMailTemplatePlaceholderResolver::$context
protected

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

Referenced by __construct().

◆ $message

string ilMailTemplatePlaceholderResolver::$message = ''
protected

Definition at line 28 of file class.ilMailTemplatePlaceholderResolver.php.

Referenced by resolve().


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