ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilMailTemplatePlaceholderResolver Class Reference

Class ilMailTemplatePlaceholderResolver. More...

+ Collaboration diagram for ilMailTemplatePlaceholderResolver:

Public Member Functions

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

Protected Attributes

 $context
 
 $message = ''
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

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

ilMailTemplateProcessor constructor.

Parameters
ilMailTemplateContext$context
string$a_message

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

References $context.

22  {
23  $this->context = $context;
24  $this->message = $a_message;
25  }

Member Function Documentation

◆ resolve()

ilMailTemplatePlaceholderResolver::resolve ( ilObjUser  $user = null,
array  $contextParameters = [],
bool  $replaceEmptyPlaceholders = true 
)
Parameters
ilObjUser | null$user
array$contextParameters
$replaceEmptyPlaceholdersboolean
Returns
string

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

References $message, and $result.

37  : string {
39 
40  foreach ($this->context->getPlaceholders() as $key => $ph_definition) {
41  $result = $this->context->resolvePlaceholder($key, $contextParameters, $user);
42  if (!$replaceEmptyPlaceholders && 0 === strlen($result)) {
43  continue;
44  }
45 
46  $startTag = '\[IF_' . strtoupper($key) . '\]';
47  $endTag = '\[\/IF_' . strtoupper($key) . '\]';
48 
49  if (strlen($result) > 0) {
50  $message = str_replace('[' . $ph_definition['placeholder'] . ']', $result, $message);
51 
52  if (array_key_exists('supportsCondition', $ph_definition) && $ph_definition['supportsCondition']) {
53  $message = preg_replace('/' . $startTag . '(.*?)' . $endTag . '/imsU', '$1', $message);
54  }
55  } else {
56  $message = preg_replace(
57  '/[[:space:]]{1,1}\[' . $ph_definition['placeholder'] . '\][[:space:]]{1,1}/ims',
58  ' ',
59  $message
60  );
61  $message = preg_replace('/\[' . $ph_definition['placeholder'] . '\]/ims', '', $message);
62 
63  if (array_key_exists('supportsCondition', $ph_definition) && $ph_definition['supportsCondition']) {
64  $message = preg_replace('/' . $startTag . '.*?' . $endTag . '/imsU', '', $message);
65  }
66  }
67  }
68 
69  return $message;
70  }
$result

Field Documentation

◆ $context

ilMailTemplatePlaceholderResolver::$context
protected

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

Referenced by __construct().

◆ $message

ilMailTemplatePlaceholderResolver::$message = ''
protected

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

Referenced by resolve().


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