403Webshell
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/wbs24.ozonapinew/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonapinew/lib/StorageMessages.php
<?php
namespace Wbs24\Ozonapinew;

use Bitrix\Main\Localization\Loc;
use Bitrix\Main\SystemException;

class StorageMessages
{
    use Exception; // trait

    public function __construct($objects = [])
    {
        $this->main = $objects['Main'] ?? new Main();
        $this->Wrappers = $objects['Wrappers'] ?? new Wrappers();
        $this->moduleId = $this->main->getModuleId();
        $this->suffix = strtoupper($this->moduleId);

        Loc::loadMessages(__FILE__); # TODO - выяснить позже почему не работает
    }

    const ERROR_MESSAGES = [
        // STOCKS
        'OVER_MAX_OVH_NON_KGT' => [], # описано
        'PRODUCT_IS_NOT_CREATED' => [], # описано
        'OFFER_ID_NOT_FOUND' => [], # описано
        'FLAMMABLE_ONLY_ON_SELF_OR_PROVIDER_DELIVERY' => [], # описано
        'WAREHOUSE_NOT_FOUND' => [], # описано
        'PRODUCT_HAS_NOT_BEEN_TAGGED_YET' => [], # описано
        'NON_KGT_ON_KGT_WAREHOUSE' => [], # описано
        'PRICE_IS_NOT_SENT' => [], # описано
        'MP_DELIVERY_ONLY_3PL_ERROR' => [],  # описано
        'MULTIBOX_NOT_ALLOWED_FOR_FBS' => [], # описано
        'OVER_MAX_OVH_KGT' => [], # описано
        'SOURCE_TYPE_NOT_FOUND' => [], # описано
        'STOCK_TOO_BIG' => [], # описано
        'FLAMMABLE_ON_NON_KGT_WAREHOUSE' => [], # описано
        // PRICES
        'VALIDATION' => [
            'value of MinPrice must be less or equals than Price' => 'MIN_PRICE_MUST_BE_LESS_OR_EQUALS_THAN_PRICE', # описано
        ],
        'INVALID_CATEGORY_PRICE' => [], # описано
        'DISCOUNT_FOR_AVERAGE_PRICE_IS_TOO_SMALL' => [], # описано
        'DISCOUNT_FOR_LOW_PRICE_IS_TOO_SMALL' => [], # описано
        'DISCOUNT_TOO_BIG' => [], # описано
        'DISCOUNT_FOR_TOP_PRICE_IS_TOO_SMALL' => [], # описано
        'PRICE_NEGATIVE' => [], # описано
        // ОБЩИЕ ОШИБКИ
        'NOT_FOUND_ERROR' => [], # описано
        'TOO_MANY_REQUESTS' => [], # описано
    ];

    public function prepareCodesToMessages($errorCodesToMessages)
    {
        foreach ($errorCodesToMessages as $code => $message) {
            if (array_key_exists($code, self::ERROR_MESSAGES)) {
                $newCode = $code;
                $newMessage = $this->getDetailDescriptionError($code, $message);
                unset($errorCodesToMessages[$code]);
            } else {
                $newCode = 'MESSAGE_NOT_FOUND';
                $newMessage = Loc::getMessage($this->suffix.'.MESSAGE_NOT_FOUND');
                unset($errorCodesToMessages[$code]);
            }

            $errorCodesToMessages[$newCode] = $newMessage; # Переназначить сообщение на новое
        }

        return $errorCodesToMessages;
    }

    protected function getDetailDescriptionError($code, $message)
    {
        try {
            $errorCodeDescription = self::ERROR_MESSAGES[$code];
            if (empty($errorCodeDescription)) {
                $message = Loc::getMessage($this->suffix.'.'.$code);
            } else {
                $languageMessage = $this->checkLatinCyrillicString($message);
                if ($languageMessage == 'latin') {
                    $message = Loc::getMessage($this->suffix.'.'.$errorCodeDescription[$message]);
                    if (!$message) $message = Loc::getMessage($this->suffix.'.MESSAGE_NOT_FOUND');
                }
            }
        } catch (SystemException $exception) {
            $this->exceptionHandler($exception);
        }

        return $message;
    }

    protected function checkLatinCyrillicString($string)
    {
        $containsCyrillic = preg_match('/[\p{Cyrillic}]/u', $string);
        $containsLatin = preg_match('/[a-zA-Z]/', $string);

        if ($containsCyrillic) {
            return 'cyrillic';
        } else {
            return "latin";
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit