9namespace Bitrix\Sender\Integration\Bitrix24;
11use Bitrix\Bitrix24\Feature;
12use Bitrix\Main\Config\Option;
13use Bitrix\Main\IO\File;
14use Bitrix\Main\Loader;
15use Bitrix\Main\Context;
16use Bitrix\Main\ModuleManager;
17use Bitrix\Main\SiteTable;
18use Bitrix\Sender\Dispatch\Semantics;
19use Bitrix\Sender\Entity;
20use Bitrix\Sender\Integration\Seo;
21use Bitrix\Sender\Internals\Model;
22use Bitrix\Sender\Message;
23use Bitrix\Sender\Message\Tracker;
51 self::isMailingsAvailable()
55 self::isEmailAvailable()
57 self::isTolokaAvailable()
59 self::isFbAdAvailable()
70 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_ad');
80 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_fb_ads');
90 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_toloka');
100 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_rc');
110 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_security');
120 return !self::isCloud() && !self::isPortal();
131 $regions = $onlyRu ? [
'ru'] : [
'ru',
'kz',
'by'];
134 return in_array(
$region, $regions);
145 $regions = $onlyRu ? [
'ru'] : [
'ru',
'kz',
'by'];
146 return self::isCloud() && in_array(\CBitrix24::getPortalZone(), $regions);
156 return self::isCloud() && in_array(
157 \CBitrix24::getPortalZone(), [
182 if (in_array(
$code, $codes))
186 return self::isCloudRegionRussian();
190 return in_array(\CIntranetUtils::getPortalZone(), [
'ru',
'kz',
'by']);
199 Seo\
Ads\MessageBase::CODE_ADS_FB,
200 Seo\
Ads\MessageBase::CODE_ADS_LOOKALIKE_FB,
206 return !self::isRegionRussian(
true);
219 $isLanguageAcceptable = (LANGUAGE_ID ??
'ru') ===
'ru';
221 if (!self::isCloud())
225 return self::isCloudRegionRussian(
true) && $isLanguageAcceptable;
236 $isLanguageAcceptable = (LANGUAGE_ID ??
'ru') ===
'ru';
240 return self::isCloudRegionRussian() && $isLanguageAcceptable ;
244 return in_array(\CIntranetUtils::getPortalZone(), [
'ru',
'kz',
'by']) && $isLanguageAcceptable;
247 return $isLanguageAcceptable;
257 return !self::isCloud() || Feature::isFeatureEnabled(
'sender_mailing');
267 $dateCreate = Option::get(
"main",
"~controller_date_create",
"");
269 return !self::isCloud()
271 Feature::isFeatureEnabled(
'sender_email')
276 $dateCreate <= mktime(
290 if (self::isMailingsAvailable())
292 return Message\Factory::getMailingMessageCodes();
295 if (self::isEmailAvailable())
335 $code =
'unsubscribe';
339 $uri =
"/pub/mail/$code.php";
348 return static::replaceTrackingDomainIfNeed(
$uri);
356 && defined(
'BX24_HOST_NAME')
357 && !in_array(mb_substr(BX24_HOST_NAME, -7), [
'.com.br',
'.com.de'])
360 $domain = BX24_HOST_NAME;
362 if (!\CBitrix24::isCustomDomain())
364 $queryDomain = preg_replace(
'/^([-\.\w]+)\.bitrix24\.([-\.\w]+)/',
'$2.$1', $domain);
365 $subdomain = rtrim(mb_substr(str_replace(
'.',
'-', $queryDomain), 0, 63),
'-');
366 $domain =
"$subdomain.mailinetservice.com/$queryDomain";
369 $uri =
"https://$domain$uri";
382 if (!self::isCloud())
387 \CBitrix24::initLicenseInfoPopupJS();
388 \CJSCore::init(
'sender_b24_license');
398 if (!self::isCloud())
403 return \CBitrix24::getLicenseType() ===
'company';
413 if (!self::isCloud())
418 $letters = Model\LetterTable::getList(
array(
419 'select' =>
array(
'ID'),
421 '=STATUS' => Semantics::getWorkStates(),
422 '!MESSAGE_CODE' =>
Message\iBase::CODE_MAIL
427 foreach ($letters as $letterData)
429 $letter->load($letterData[
'ID']);
430 if (!$letter->getId())
435 $state = $letter->getState();
436 if ($state->canReady())
440 else if ($state->canStop())
449 return static::isCloud();
static includeModule($moduleName)
static isModuleInstalled($moduleName)
static getDocumentRoot($siteId=null)
static isRegionRussian(bool $onlyRu=false)
static isTolokaVisibleInRegion()
static replaceTrackingDomainIfNeed(string $uri)
static isCampaignsAvailable()
static getTrackingUri(int $type, ?string $siteId=null)
static isEmailAvailable()
static isCloudRegionRussian(bool $onlyRu=false)
static getAvailableMailingCodes()
static isMasterYandexAvailable()
static isMasterYandexVisibleInRegion()
static isCloudRegionMayTrackMails()
static isMailingsAvailable()
static initLicensePopup()
static isPermissionEnabled()
static isAdVisibleInRegion($code)
static isTolokaAvailable()
const CODE_ADS_LOOKALIKE_VK
const CODE_ADS_LOOKALIKE_YANDEX
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
if(file_exists($_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php")) $uri
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)