1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
dynamicparamfiller.php
См. документацию.
1<?php
2
3namespace Bitrix\Seo\Analytics\Services\Helpers\Yandex;
4
6{
7 public static function fill(Dto\Report $report, string $href): void
8 {
9 if (empty($href))
10 {
11 return;
12 }
13
14 $dynamicParams = self::parseDynamicParams($href);
15 $dynamicParamValues = [];
16
17 foreach ($dynamicParams as $dynamicParam)
18 {
19 $dynamicParamValues[] = self::getDynamicParamValue($report, $dynamicParam);
20 }
21
22 $href = str_replace($dynamicParams, $dynamicParamValues, $href);
23
24 $utmExtractor = new UtmExtractor($href);
25 $report->utmSource = $utmExtractor->getUtmSource();
26 $report->utmMedium = $utmExtractor->getUtmMedium();
27 $report->utmCampaign = $utmExtractor->getUtmCampaign();
28 $report->utmContent = $utmExtractor->getUtmContent();
29 }
30
31 private static function parseDynamicParams(string $href): array
32 {
33 $matches = [];
34 preg_match_all('/{(.+?)}/', $href, $matches);
35
36 return $matches[0] ?? [];
37 }
38
39 private static function getDynamicParamValue(Dto\Report $report, string $dynamicParam): mixed
40 {
41 return match ($dynamicParam)
42 {
43 '{ad_id}', '{banner_id}' => $report->adId,
44 '{campaign_name}' => mb_substr($report->campaignName, 0, 255),
45 '{campaign_name_lat}' => mb_substr(\CUtil::translit($report->campaignName, 'en'), 0, 255),
46 '{campaign_id}', '{campaignid}' => $report->campaignId,
47 '{gbid}', '{adgroupid}' => $report->adGroupId,
48 default => $dynamicParam,
49 };
50 }
51}
static fill(Dto\Report $report, string $href)
Определения dynamicparamfiller.php:7
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$matches
Определения index.php:22