Как обновить тему на базе Amazing для поддержки статусов продаж?
Если вы уже обновили платформу ReadyScript до версии 6.1, но используете индивидуальную тему на базе шаблона Amazing (Изумительная), то необходимо произвести обновление следующих файлов:
Скопируйте из темы amazing файл /templates/amazing/resource/css/main.css в вашу тему оформления /templates/ВАША ТЕМА/resource/css/main.css
Вырезка изменившейся части из /templates/amazing/resource/src/main.scss
.item-product-sale-status {
background-color: $very-light-gray;
border-radius: 8px;
padding: 6px 12px;
color:$gray;
display:none;
}
@media screen and (max-width: 575.98px) {
.item-product-sale-status {
font-size:14px;
}
}
.rs-product-item .item-product-sale-status {
margin-bottom:16px;
}
[data-sale-status]:not([data-sale-status="show_cost"]) .rs-sale-status {
display:inline-flex;
}
[data-sale-status="on_request"] .rs-unobtainable,
[data-sale-status]:not([data-sale-status="show_cost"]) .rs-price-block,
[data-sale-status]:not([data-sale-status="show_cost"]) .rs-reserve,
[data-sale-status]:not([data-sale-status="show_cost"]) .rs-buy-one-click,
[data-sale-status]:not([data-sale-status="show_cost"]) .rs-buy {
display:none !important;
}
[data-sale-status="discontinued"] .rs-unobtainable,
[data-sale-status="no_cost"]:not(.rs-can-be-reserved) .rs-unobtainable,
.rs-can-be-reserved[data-sale-status="no_cost"] .rs-reserve,
[data-sale-status][data-sale-status="on_request"] .rs-reserve,
[data-sale-status][data-sale-status="on_request"] .rs-buy-one-click.btn {
display: flex !important;
}
Помимо css, изменения произошли в следующих шаблонах:
- /modules/catalog/view/one_product.tpl
- /modules/catalog/view/one_table_product.tpl
- /modules/catalog/view/product.tpl
- /modules/catalog/view/product_cart_button.tpl
- /modules/shop/view/show_complekts.tpl
Если у вас были перегружены данные шаблоны, то необходимо их актуализировать, т.е. применить наши новые правки в этих файлах.
Мы также обновили JS-файлы в модулях catalog.
- /modules/catalog/view/js/rscomponent/changeoffer.js
- /modules/catalog/view/js/rscomponent/offerspreview.js
Если данные файлы у вас были перегружены в теме оформления, то необходимо их актуализировать.
Как перейти на PHP версии 8.1
PHP версии 8.1 значительно отличается по возможностям и синтаксису от PHP 7.x. В случае, если у вас имеются инивидуальные доработки темы оформления, платформы или имеется большое количество индивидуальных или устаревших модулей, то лучше обратиться к специалистам, т.к. алгоритм обновления в таком случае будет такой:
- Сперва можно попытаться запустить административную панель на PHP 8.1 и обновиться через Центр обновления
- Если п.1. не удается, то необходимо поверх ваших файлов сайта загрузить свежую версию платформы, за исключением файла /core/system/copyid.inc.php
- Необходимо добиться запуска административной панели
- Необходимо Исправить структуру БД
- Необходимо поправить все ошибки, которые будут встречены на различных страницах сайта
В случае же, если индивидуальные правки в вашей копии платформы отсутствуют и вы просто очень давно не обновлялись, то необходимо после переключения на PHP 8.1 вашей устаревшей версии ReadyScript в файле core/rs/config/abstractsetup.inc.php заменить 2 функции varsAsArray и defineVars на следующие по содержанию:
abstract class AbstractSetup
{
public static function varsAsArray()
{
$reflection = new \ReflectionClass(get_called_class());
return $reflection->getStaticProperties();
}
protected static function defineVars()
{
$arr = self::varsAsArray();
foreach ($arr as $key => $val) {
if (is_int($val) || is_string($val) || is_bool($val) || is_null($val)) {
define($key, $val);
}
}
}
}
После этих манипуляций, административная панель сайта старой версии должна открыться на PHP 8.1 и далее можно через раздел Управление -> Центр обновления приступить к стандартному обновлению системы с отключенной опцией "Подробно отображать информацию об исключениях" в разделе Управление -> Настройка системы.