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/rospirotorg.ru/bitrix/modules/sender/lib/preset/templates/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2012 Bitrix */ namespace Bitrix\Sender\Preset\Templates; use Bitrix\Main\IO\File; use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; use Bitrix\Sender\Integration\Yandex\Toloka\DTO\InputOutputSpec; use Bitrix\Sender\Message; use Bitrix\Sender\Templates\Category; use Bitrix\Sender\Templates\Type; Loc::loadMessages(__FILE__); /** * Class Rc * @package Bitrix\Sender\Preset\Templates */ class Toloka { const IMAGE_DIR = '/images/sender/preset/events/'; const LOCAL_DIR = '/modules/sender/preset/template_toloka/'; private static function getFileContent($fileName) { $pathTemplate = Loader::getLocal(self::LOCAL_DIR . bx_basename($fileName) . '.php'); $pathCSS = Loader::getLocal(self::LOCAL_DIR . bx_basename($fileName) . '.css'); $pathJS = Loader::getLocal(self::LOCAL_DIR . bx_basename($fileName) . '.js'); if ( self::fileExists($pathTemplate) && self::fileExists($pathCSS) && self::fileExists($pathJS) ) { return [ 'template' => File::getFileContents($pathTemplate), 'css' => File::getFileContents($pathCSS), 'js' => File::getFileContents($pathJS), ]; } return []; } private static function fileExists($path):bool { if($path && File::isFileExists($path)) { return true; } return false; } /** * Return base templates. * * @param string|null $templateType Template type. * @param string|null $templateId Template ID. * @param string|null $messageCode Message code. * @return array */ public static function onPresetTemplateList($templateType = null, $templateId = null, $messageCode = null) { if($templateType && $templateType !== 'BASE') { return array(); } if($messageCode && $messageCode !== Message\iBase::CODE_TOLOKA) { return array(); } return self::getTemplates($templateId, $messageCode); } private static function getListByType() { $list = [ [ 'CODE' => 'video', 'SEGMENT_CODES' => [], 'NAME' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_TITLE_VIDEO'), 'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_HINT_VIDEO'), 'FIELDS' => [ 'INSTRUCTION' => [ 'CODE' => 'INSTRUCTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_VIDEO_INSTRUCTION') ], 'DESCRIPTION' => [ 'CODE' => 'DESCRIPTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_VIDEO_DESCRIPTION') ], 'TASKS' => [ 'CODE' => 'TASKS', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_VIDEO_TASKS') ], 'INPUT_VALUE' => [ 'CODE' => 'INPUT_VALUE', 'VALUE' => ['video' => InputOutputSpec::TYPES['URL']] ], 'OUTPUT_VALUE' => [ 'CODE' => 'OUTPUT_VALUE', 'VALUE' => ['result' => InputOutputSpec::TYPES['STRING']] ], 'PRESET' => [ 'CODE' => 'PRESET', 'VALUE' => self::getFileContent('video') ] ] ], [ 'CODE' => 'leaflets', 'SEGMENT_CODES' => [], 'NAME' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_TITLE_LEAFLETS'), 'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_HINT_LEAFLETS'), 'FIELDS' => [ 'INSTRUCTION' => [ 'CODE' => 'INSTRUCTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_LEAFLETS_INSTRUCTION') ], 'DESCRIPTION' => [ 'CODE' => 'DESCRIPTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_LEAFLETS_DESCRIPTION') ], 'TASKS' => [ 'CODE' => 'TASKS', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_LEAFLETS_TASKS') ], 'INPUT_VALUE' => [ 'CODE' => 'INPUT_VALUE', 'VALUE' => ['url' => InputOutputSpec::TYPES['URL']] ], 'OUTPUT_VALUE' => [ 'CODE' => 'OUTPUT_VALUE', 'VALUE' => ['result' => InputOutputSpec::TYPES['STRING']] ], 'PRESET' => [ 'CODE' => 'PRESET', 'VALUE' => self::getFileContent('video') ] ] ], [ 'CODE' => 'mystery_shopper', 'SEGMENT_CODES' => [], 'NAME' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_TITLE_MYSTERY'), 'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_HINT_MYSTERY'), 'FIELDS' => [ 'INSTRUCTION' => [ 'CODE' => 'INSTRUCTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_MYSTERY_INSTRUCTION') ], 'DESCRIPTION' => [ 'CODE' => 'DESCRIPTION', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_MYSTERY_DESCRIPTION') ], 'TASKS' => [ 'CODE' => 'TASKS', 'VALUE' => Loc::getMessage('SENDER_PRESET_TEMPLATE_TOLOKA_MYSTERY_TASKS') ], 'INPUT_VALUE' => [ 'CODE' => 'INPUT_VALUE', 'VALUE' => ['url' => InputOutputSpec::TYPES['URL']] ], 'OUTPUT_VALUE' => [ 'CODE' => 'OUTPUT_VALUE', 'VALUE' => ['result' => InputOutputSpec::TYPES['STRING']] ], 'PRESET' => [ 'CODE' => 'PRESET', 'VALUE' => self::getFileContent('video') ] ] ], ]; return $list; } private static function getTemplates($templateId = null, $messageCode = null) { $messageCodes = $messageCode ? array($messageCode) : []; $result = []; foreach (self::getListByType() as $item) { $originalCode = strtolower($item['CODE']); $code = 'toloka_' . strtolower($item['CODE']); if($templateId && $code !== $templateId) { continue; } $result[] = array( 'ID' => $code, 'TYPE' => Type::getCode(Type::BASE), 'CATEGORY' => Category::getCode(Category::CASES), 'MESSAGE_CODE' => $messageCodes, 'VERSION' => 2, 'HOT' => $item['HOT'] ?? '', 'ICON' => BX_ROOT . self::IMAGE_DIR . "$originalCode.png", 'NAME' => $item['NAME'] ?? '', 'DESC' => $item['DESC'] ?? '', 'HINT' => $item['HINT'] ?? '', 'FIELDS' => array_merge( $item['FIELDS'], [ 'TITLE' => [ 'CODE' => 'TITLE', 'VALUE' => $item['TITLE'] ?? '', ], 'COMMENT' => [ 'CODE' => 'COMMENT', 'VALUE' => $item['TEXT'] ?? '', ], 'ALWAYS_ADD' => [ 'CODE' => 'ALWAYS_ADD', 'VALUE' => 'Y', ], ]), 'SEGMENTS' => [], 'DISPATCH' => $item['DISPATCH'] ?? '', ); } return $result; } }