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

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

  1. \Tygh\Backend\Cache\ABackend::__construct теперь выдаёт DeveloperException, когда кэш инициализируется раньше, чем company_id.
  2. Модуль “Города” (rus_cities) теперь содержит всю общую информацию о городах, используемых модулями “СДЭК” (rus_sdek), “eDost” (rus_edost), “Деловые линии” (rus_dellin) и “ПЭК” (rus_pecom). Код, который работает с городами, был изменён во всех этих модулях.
  3. Изменён механизм автозаполнения навзания города в СДЭК.

Изменения в хуках

Новые хуки

  1. Этот хук позволяет изменять параметры и результат функции после её выполнения:

    fn_set_hook('get_static_data_post', $params, $lang_code, $s_data);
    
  2. Этот хук позволяет изменять входные параметры функции:

    fn_set_hook('delete_static_data_pre', $param_id);
    
  3. Этот хук позволяет изменять входные параметры функции:

    fn_set_hook('get_static_data_pre', $params, $lang_code);
    
  4. Этот хук позволяет изменять параметры и результат функции после её выполнения:

    fn_set_hook('get_static_data_post', $params, $lang_code, $s_data);
    
  5. Этот хук позволяет изменять входные параметры функции:

    fn_set_hook('delete_static_data_pre', $param_id);
    
  6. Этот хук позволяет изменять параметры функции после её выполнения:

    fn_set_hook('delete_static_data_post', $param_id, $delete_ids);
    
  7. Этот хук позволяет изменять входные параметры функции:

    fn_set_hook('delete_promotions_pre', $promotion_ids);
    
  8. Этот хук позволяет изменять идентификаторы промо-акций после выполнения SQL-запросов:

    fn_set_hook('delete_promotions_post', $promotion_ids);
    
  9. Этот хук позволяет изменять входные параметры функции:

    fn_set_hook('update_promotion_pre', $data, $promotion_id, $lang_code);
    
  10. Этот хук позволяет изменять параметры и результат функции после её выполнения:

    fn_set_hook('update_promotion_post', $data, $promotion_id, $lang_code);
    
  11. Этот хук позволяет изменять параметры и результат функции после её выполнения:

    fn_set_hook('get_promotions_post', $params, $items_per_page, $lang_code, $promotions);
    
  12. Этот хук позволяет изменять страницы до их включения в структуру page_tree:

    fn_set_hook('get_pages_after_sql', $params, $items_per_page, $lang_code, $pages);
    
  13. Этот хук позволяет изменять параметры выборки компаний и получившийся список компаний:

    fn_set_hook('get_companies_post', $params, $auth, $items_per_page, $lang_code, $companies);
    
  14. Этот хук позволяет изменять данные товара перед инициализацией вкладок товара:

    fn_set_hook('init_product_tabs_pre', $product);
    
  15. Этот хук позволяет изменять данные вкладок товара перед передачей этих данных в шаблон:

    fn_set_hook('init_product_tabs_post', $product, $tabs);
    

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

  1. // Было:
    fn_set_hook('get_statuses', $join, $condition, $type, $status_to_select, $additional_statuses, $exclude_parent, $lang_code, $company_id);
    
    // Стало:
    fn_set_hook('get_statuses', $join, $condition, $type, $status_to_select, $additional_statuses, $exclude_parent, $lang_code, $company_id, $order);
    
  2. // Было:
    fn_set_hook('get_statuses_post', $statuses,$join, $condition,$type, $status_to_select, $additional_statuses, $exclude_parent, $lang_code, $company_id);
    
    // Стало:
    fn_set_hook('get_statuses_post', $statuses,$join, $condition,$type, $status_to_select, $additional_statuses, $exclude_parent, $lang_code, $company_id, $order);
    
  3. // Было:
    fn_set_hook('update_product_categories_pre', $product_id, $product_data, $rebuild);
    
    // Стало:
    fn_set_hook('update_product_categories_pre', $product_id, $product_data, $rebuild, $company_id);
    
  4. // Было:
    fn_set_hook('update_product_categories_post', $product_id, $product_data, $existing_categories, $rebuild);
    
    // Стало:
    fn_set_hook('update_product_categories_post', $product_id, $product_data, $existing_categories, $rebuild, $company_id);
    
  5. // Было:
    fn_set_hook('get_promotions', $params, $fields, $sortings, $condition, $join);
    
    // Стало:
    fn_set_hook('get_promotions', $params, $fields, $sortings, $condition, $join, $group, $lang_code);
    

Новые хуки только в русской версии

  1. Этот хук служит для подготовки параметров SQL-запроса перед получением списка городов:

    fn_set_hook('get_cities_pre', $params, $items_per_page, $lang_code, $fields, $condition, $join);
    
  2. Этот хук служит для изменения данных в списке городов:

    fn_set_hook('get_cities_post', $params, $items_per_page, $lang_code, $cities);
    
  3. Этот хук служит для обновления данных города:

    fn_set_hook('update_city_post', $city_data, $city_id, $lang_code);
    

Изменения в функциях

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

  1. Проверяет наличие перевода для языковой переменной:

    fn_is_lang_var_exists($value)
    
  2. Получает перевод для языковой переменной:

    fn_exim_get_field_label($value)
    
  3. Получает код локали по коду языка:

    \Tygh\Languages\Languages::getLocaleByLanguageCode
    
  4. Округляет рейтинг в отзыве:

    fn_discussion_round_rating($rating, $decimals = 2)
    
  5. Инициализирует вкладки товара:

    fn_init_product_tabs($product)
    

Новые функции только в русской версии

  1. Обновляет данные города в таблицах rus_cities и rus_city_descriptions:

    function fn_update_city($city_data, $city_id = 0, $lang_code = DESCR_SL)
    
  2. Ищет города по параметрам:

    function fn_rus_cities_find_cities($params, $lang_code = CART_LANGUAGE)
    
  3. Получает список городов в правильном формате:

    function fn_rus_cities_format_to_autocomplete($cities)
    
  4. Получает идентификаторы города по его названию:

    function fn_rus_cities_get_city_ids($city, $state, $country, $lang_code = CART_LANGUAGE)
    
  5. Добавляет данные городов в таблицу:

    function fn_rus_cities_add_cities_in_table($rows)
    
  6. Получает полный список городов:

    function fn_rus_cities_get_all_cities($rows)
    
  7. Получает коды eDost для городов:

    function fn_rus_edost_get_codes($cities_ids)
    
  8. Добавляет данные городов в таблицу rus_edost_cities_link:

    function fn_rus_edost_add_cities_in_table($rows)
    
  9. Проверяет, существует ли код региона:

    function fn_rus_sdek_check_state_code($state, $country = '', $avail_only = true)
    
  10. Получает данные СДЭК для указанного города:

    function fn_rus_sdek_get_sdek_data($city_id)
    
  11. Добавляет данные городов в таблицу rus_sdek_cities_link:

    function fn_rus_sdek_add_cities_in_table($rows)
    
  12. Добавляет данные городов в таблицу rus_pecom_cities_link:

    function fn_rus_pecom_add_cities_in_table($rows)
    
  13. Добавляет данные городов в таблицу rus_dellin_cities_link:

    function fn_rus_dellin_add_cities_in_table($rows)
    
  14. Считывает данные городов из CSV-файла для добавления этих данных в таблицы:

    function fn_rus_cities_read_cities_by_chunk($path, $size, $function_callback)
    

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

  1. // Было:
    function fn_paypal_payment_form($processor_data, $token)
    
    // Стало:
    function fn_paypal_payment_form($processor_data, $token, $return = false)
    
  2. // Было:
    function fn_paypal_get_error($result)
    
    // Стало:
    function fn_paypal_get_error($result, $show_notification = true, $return_type = 'text')
    
  3. // Было:
    app/controllers/backend/product_filters.php fn_update_product_filter($filter_data, $filter_id, $lang_code = DESCR_SL)
    
    // Стало:
    app/functions/fn.catalog.php fn_update_product_filter($filter_data, $filter_id, $lang_code = DESCR_SL)
    
  4. // Было:
    function fn_update_product_categories($product_id, $product_data, $rebuild = false);
    
    // Стало:
    function fn_update_product_categories($product_id, $product_data, $rebuild = false, $company_id = 0)
    
  5. // Было:
    function fn_ult_get_categories(&$params, &$join, &$condition, &$fields, &$group_by, &$sortings)
    
    // Стало:
    function fn_ult_get_categories(&$params, &$join, &$condition, &$fields, &$group_by, &$sortings, &$lang_code)
    

Новые классы

  1. \Tygh\Enum\ProductOptionsApplyOrder содержит возможные порядки применения опций (или одновременно, или последовательно).

Удалённые функции только в русской версии

  1. fn_edost_update_table_cities
  2. fn_cities_update_table_cities