/
pashko
/
siec
Обзор
Документация
Войти
/
pashko
/
siec
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/components/Helper.php
80 строк
2 KB
Pavel Kokorin
send to b24 fix
16 сен 2025, 07:35
16 сен 2025, 07:35
f7612d4
Код
Авторство
О чём код?
<?php namespace frontend\components; use yii\helpers\ArrayHelper; use yii\web\Cookie; use yii; class Helper { public static function getUtmData(): void { $delimiter = 'utm_'; $session = \Yii::$app->session; if (!empty($get = yii::$app->request->get())) { foreach ($get as $key => $val) { if (!empty(explode($delimiter, $key)[1])) { $utm_type = explode($delimiter, $key)[1]; $session[$delimiter . $utm_type] = $val; $cookie = new Cookie([ 'name' => $delimiter . $utm_type, 'value' => $val, 'expire' => time() + 86400 * 14, ]); \Yii::$app->getResponse()->getCookies()->add($cookie); } } } else { $cookies = \Yii::$app->getRequest()->getCookies(); foreach ($cookies as $cookie) { if (stripos($cookie->name, $delimiter) === 0) { $session[$cookie->name] = $cookie->value; } } } } /** * @return array */ public static function getSessionUtm(string $type = 'string') { $result = []; foreach (Yii::$app->session as $key => $val) { if (stripos($key, 'utm_') === 0) { if ($type === 'string') { $result[$key] = "$key=$val"; } else { $result[$key] = $val; } } } return $result; } public static function getSessionAndCookieUtm(string $type = 'string') { $result = self::getSessionUtm(); foreach ($_COOKIE as $key => $val) { if (stripos($key, 'utm_') === 0 || $key == '_ga' || $key == '_ym_uid' || $key == 'sbjs_current') { if ($type === 'string') { $result[$key] = "$key=$val"; } else { $result[$key] = $val; } } } return $result; } }