• Модуль: 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;
}