Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/seo/lib/ui/provider/ |
Upload File : |
<?php namespace Bitrix\Seo\UI\Provider; use Bitrix\Seo\Marketing\Configurator; use Bitrix\Seo\Marketing\Services\AdCampaignFacebook; use Bitrix\UI\EntitySelector\Dialog; use Bitrix\UI\EntitySelector\Item; use Bitrix\UI\EntitySelector\SearchQuery; class InterestsProvider extends \Bitrix\UI\EntitySelector\BaseProvider { const SEARCH_TYPE = 'adinterest'; const ENTITY_TYPE = 'facebook_interests'; public function __construct(array $options = []) { parent::__construct(); $this->options['clientId'] = $options['clientId']; } public function isAvailable() : bool { if($this->getOption('clientId')) { return true; } return false; } public function getItems(array $ids) : array { return []; } public function getSelectedItems(array $ids) : array { return []; } public function doSearch(SearchQuery $searchQuery, Dialog $dialog): void { $service = Configurator::getService(); $service->setClientId($this->getOption('clientId')); $searchQuery->setCacheable(false); $response = Configurator::searchTargetingData( AdCampaignFacebook::TYPE_CODE, [ 'q' => $searchQuery->getQuery(), 'type' => static::SEARCH_TYPE ] ); $items = []; foreach($response as $value) { if(!isset($value['name'])) { continue; } $topic = htmlspecialcharsbx($value['topic']); $title = $value['name']. ($topic ?" ({$topic})" : ""); $items[] = new Item( [ 'id' => $value['id'], 'entityId' => static::ENTITY_TYPE, 'title' => $title, 'customData' => ['audienceSize' => $value['audience_size']], 'tagOptions' => [ 'bgColor' => "#{$this->stringToColor($title)}", 'textColor' => "#fff" ] ] ); } $dialog->addItems( $items ); } protected function stringToColor($text) { $hx = dechex(crc32($text)); return substr($hx, 0, 6); } }