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

Изменения в модулях

Модуль “Города”

В 4.16.1 появляется новый модуль “Города” (cities). В этой версии модуль скрыт из списка модулей. Это значит, что он не появится в панели администратора, и клиенты о нём не узнают. Но вы можете установить модуль через консоль:

cd /path/to/store
php admin.php -p --dispatch=addons.install --addon=cities

В версии 4.17.1 модуль rus_cities станет недоступен, его заменит единый модуль для русской и для международной версии cities. Мы планируем переход на новый модуль плавно, чтобы у вас было время обновить всё не спеша. Пока мы перенесли базу городов из модуля rus_cities в модуль cities.

Чтобы заполнить базу городов новыми данными:

  • Перед установкой модуля добавьте файл с данными по городам в app/addons/cities/database/cities.csv.
  • Установите модуль. Во время установки данные из файла будут перемещены в базу городов.

Формат файла: CSV. Одна строка в файле содержит “Код страны” (Country), “Код региона” (OblName), “Почтовый индекс” (PostCodeList), “Название населенного пункта” (City), “Код языка” (lang_code):

"Country","OblName","PostCodeList","City","lang_code"
"US","MA","02108","Boston","en"
"DE","BE","10115","Berlin","en"
"DE","BE","10115","Berlin","de"
Пример заполнения файла
Country OblName PostCodeList City lang_code
US MA 02108 Boston en
DE BE 10115 Berlin en
DE BE 10115 Berlin de

При переходе на новый модуль cities стоит учесть изменения в названиях функций в своем коде: rus_cities меняется на cities. Поменяйте имена следующих функций, т.к. их названия приведены к стандарту, и при замене с помощью поиска могут возникнуть проблемы:

fn_get_cities -> fn_cities_get_cities
fn_update_city -> fn_cities_update_city
fn_rus_city_get_city_data -> fn_cities_get_city_data

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

HTML-блок с поддержкой Smarty помечен как устаревший

В CS-Cart есть HTML-блок с поддержкой Smarty, который позволяет добавлять на страницы Smarty-код. Однако существующие блоки были небезопасны, поэтому в 4.16.1 мы добавили новые безопасные блоки. При этом после обновления старые блоки будут работать, но вы не сможете обновить их контент. Если хотите использовать в новом блоке дополнительные функции, расширьте схему block_manager/smarty_allowed_functions.php.

Используйте новые тип и шаблон блока:

  • тип: safe_smarty_block;
  • шаблон: blocks/safe_smarty_block.tpl.

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

  1. Массово обновляет уведомления по параметрам поиска:

    \Tygh\NotificationsCenter\IRepository::bulkUpdate(Notification $notification_template, array $update_fields = [], array $params = []);
    
  2. Получает значение настроек для всех витрин:

    \Tygh\Settings::getAllStorefrontValues($setting_name, $section_name = '');
    

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

Новые хуки

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

    fn_set_hook('storefront_repository_save_pre', $storefront, $storefront_data);
    
  2. Получает товар перед получением ссылки на него:

    fn_set_hook('google_sitemap_write_products_to_sitemap_before_getting_link', $storefront, $last_modified_time, $change_frequency, $priority, $file, $link_counter, $file_counter, $sitemap_header, $sitemap_footer, $languages, $products, $product, $page, $params, $sitemap_items);
    
  3. Получает параметры перед получением товаров:

    fn_set_hook('google_sitemap_write_products_to_sitemap_before_getting_products', $storefront, $last_modified_time, $change_frequency, $priority, $file, $link_counter, $file_counter, $sitemap_header, $sitemap_footer, $languages, $products, $product, $page, $params, $query_condition).