- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/site/cookies.php
- Класс: BitrixLandingSiteCookies
- Вызов: Cookies::getAgreements
static function getAgreements(int $siteId, bool $viewMode = false): array
{
$agreements = [];
if (!$siteId)
{
return $agreements;
}
//get zone
$zone = '';
if (Loader::includeModule('bitrix24'))
{
$zone = CBitrix24::getPortalZone();
}
elseif (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/lang/ru")
&& !file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/lang/ua"))
{
$zone = 'ru';
}
// first get system messages
foreach (self::SYSTEM_COOKIES as $code => $cookieItem)
{
if (in_array($code, ['ym', 'vkp']) && !Manager::availableOnlyForZone('ru'))
{
continue;
}
if ($code === 'fbp' && $zone === 'ru')
{
continue;
}
$codeUp = strtoupper($code);
$agreements[$code] = [
'ID' => 0,
'CODE' => $code,
'TYPE' => $cookieItem['type'],
'SYSTEM' => 'Y',
'ACTIVE' => 'Y',
'TITLE' => Loc::getMessage('LANDING_COOKIES_SYS_' . $codeUp . '_TITLE'),
'~TITLE' => $viewMode ? '' : Loc::getMessage('LANDING_COOKIES_SYS_' . $codeUp . '_TITLE'),
'CONTENT' => Loc::getMessage('LANDING_COOKIES_SYS_' . $codeUp . '_TEXT'),
'~CONTENT' => $viewMode ? '' : Loc::getMessage('LANDING_COOKIES_SYS_' . $codeUp . '_TEXT')
];
}
if ($siteId < 0)
{
return $agreements;
}
// then get custom messages from DB
$res = CookiesAgreement::getList([
'select' => [
'ID', 'ACTIVE', 'CODE', 'TITLE', 'CONTENT'
],
'filter' => [
'SITE_ID' => $siteId
]
]);
while ($row = $res->fetch())
{
if (isset($agreements[$row['CODE']]))
{
if (!$row['TITLE'])
{
unset($row['TITLE']);
}
$agreements[$row['CODE']] = array_merge(
$agreements[$row['CODE']],
$row
);
}
else
{
$row['SYSTEM'] = 'N';
$row['TYPE'] = self::getCookieType($row['CODE']);
$row['~TITLE'] = $viewMode ? '' : $row['TITLE'];
$row['~CONTENT'] = $viewMode ? '' : $row['CONTENT'];
$agreements[$row['CODE']] = $row;
}
}
if ($viewMode)
{
$agreements = array_map(function($item)
{
$parser = new CTextParser;
$item['CONTENT'] = $parser->convertText($item['CONTENT']);
$item['TITLE'] = htmlspecialcharsbx($item['TITLE']);
return $item;
}, $agreements);
}
return $agreements;
}