- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/trackingservice.php
- Класс: CBPTrackingService
- Вызов: CBPTrackingService::parseStringParameterMatches
static function parseStringParameterMatches($matches, $documentType = null, $htmlSpecialChars = true)
{
$result = "";
$documentType = is_array($documentType) ? array_filter($documentType) : null;
if ($matches[1] === "user")
{
$user = $matches[2];
$l = mb_strlen("user_");
if (mb_strpos($user, "user_") === 0)
{
$result = CBPHelper::ConvertUserToPrintableForm((int)(mb_substr($user, $l)), '', $htmlSpecialChars);
}
elseif (mb_strpos($user, 'group_') === 0)
{
$result =
$htmlSpecialChars
? htmlspecialcharsbx(CBPHelper::getExtendedGroupName($user))
: CBPHelper::getExtendedGroupName($user)
;
}
elseif ($documentType)
{
$v = implode(",", $documentType);
if (!array_key_exists($v,self::$userGroupsCache ))
{
self::$userGroupsCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
}
$result = self::$userGroupsCache[$v][$user];
}
else
{
$result = $user;
}
}
elseif ($matches[1] === "group")
{
if (mb_strpos($matches[2], 'group_') === 0)
{
$result =
$htmlSpecialChars
? htmlspecialcharsbx(CBPHelper::getExtendedGroupName($matches[2]))
: CBPHelper::getExtendedGroupName($matches[2])
;
}
elseif ($documentType)
{
$v = implode(",", $documentType);
if (!array_key_exists($v, self::$userGroupsCache))
{
self::$userGroupsCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
}
$result = self::$userGroupsCache[$v][$matches[2]];
}
else
{
$result = $matches[2];
}
}
else
{
$result = $matches[0];
}
return $result;
}