Адаптация существующих модулей и тем под CS-Cart 4.12.2

Общие изменения

В CS-Cart 4.12.1 и выше добавлена поддержка PHP 7.4.

Изменения в ядре

Изменённые функции

  1. // Было:
    \Tygh\Template\Document\Variables\CompanyVariable::__construct($config, $company_id, $lang_code)
    // Стало:
    \Tygh\Template\Document\Variables\CompanyVariable::__construct($config, $company_id, $lang_code, IContext $context)
    
  2. // Было:
    \Tygh\Template\Document\Order\Context::__construct(Order $order)
    // Стало:
    \Tygh\Template\Document\Order\Context::__construct(Order $order, $area = AREA)
    
  3. // Было:
    \Tygh\Addons\GiftCertificates\Documents\GiftCertificate\Context::__construct(array $gift_certificate_data, $lang_code)
    // Стало:
    \Tygh\Addons\GiftCertificates\Documents\GiftCertificate\Context::__construct(array $gift_certificate_data, $lang_code, $area = AREA)
    

Устаревшие функции

  1. // Устаревшая функция:
    \Tygh\Addons\AdvancedImport\Presets\Manager::updateStatistics
    // Что использовать вместо неё:
    \Tygh\Addons\AdvancedImport\Presets\Manager::updateState
    

Новые функции

  1. Получает область сайта:

    \Tygh\Template\IContext::getArea()
    
  2. Получает область сайта:

    \Tygh\Template\Snippet\Table\ItemContext::getArea()
    
  3. Получает область сайта:

    \Tygh\Template\Mail\Context::getArea()
    
  4. Получает область сайта:

    \Tygh\Template\Internal\Context::getArea()
    
  5. Получает область сайта:

    \Tygh\Template\Document\Order\Context::getArea()
    
  6. Получает область сайта:

    \Tygh\Addons\GiftCertificates\Documents\GiftCertificate\Context::getArea()
    
  7. Собирает дополнительные данные о товарах для запроса API:

    \fn_storefront_rest_api_gather_additional_products_data(array $products, array $params = [])
    
  8. Загружает данные продавца для товарных предложений:

    \fn_master_products_load_products_seller_data(array $products)
    

Хуки

Изменённые хуки

  1. // Было:
    fn_set_hook('template_document_order_context_init', $this, $order);
    // Стало:
    fn_set_hook('template_document_order_context_init', $this, $order, $area);
    
  2. // Было:
    fn_set_hook('get_logos_post', $company_id, $layout_id, $style_id, $logos);
    // Стало:
    fn_set_hook('get_logos_post', $company_id, $layout_id, $style_id, $logos, $storefront_id);
    
  3. // Было:
    fn_set_hook('update_language_post', $language_data, $lang_id, $action);
    // Стало:
    fn_set_hook('update_language_post', $language_data, $lang_id, $action, $previous_language_data);
    

Новые хуки

  1. Выполняется перед сбором дополнительных данных о товаре для запроса API. Позволяет менять параметры сбора данных:

    fn_set_hook('storefront_rest_api_gather_additional_products_data_pre', $products, $params, $data_gather_params);
    
  2. Выполняется после сбора дополнительных данных о товаре для запроса API. Позволяет менять собранные данные:

    fn_set_hook('storefront_rest_api_gather_additional_products_data_post', $products, $params, $data_gather_params);
    
  3. Выполняется после входа в систему. Позволяет менять переадресацию и данные сеанса:

    fn_set_hook('hybrid_auth_login_post', $user_data, $auth_data, $provider_id, $redirect_url, $user_status);