- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasknotifications.php
- Класс: CTaskNotifications
- Вызов: CTaskNotifications::cropMessage
static function cropMessage($template, array $replaces = array(), $length = false)
{
if($length === false)
{
$result = str_replace(array_keys($replaces), $replaces, $template);
}
else
{
$left = $length - mb_strlen(preg_replace('/#[a-zA-Z_0-9]+#/', '', $template));
$result = $template;
// todo: make more clever algorithm here
foreach($replaces as $placeHolder => $value)
{
$fullValue = $value;
$placeHolder = '#'.$placeHolder.'#';
if ($left <= 0)
{
$result = str_replace($placeHolder, '', $result);
continue;
}
if (mb_strlen($value) > $left)
{
$value = mb_substr($value, 0, $left - 3).'...';
}
$result = str_replace($placeHolder, $value, $result);
$left -= mb_strlen($fullValue);
}
}
return $result;
}