Версия: 6.x
burger close
Обновление ReadyScript с версии 2x до 3x

Обзор технических изменений ReadyScript 3.0, влияющих на совместимость с ReadyScript 2.0.

Данный материал предназначен для разработчиков, вносивших изменения в стандартные модули ReadyScript и позволяет понять характер произошедших изменений, чтобы в случае несовместимости собственных правок с платформой 3.0 внести в них корректировки.

ReadyScript 3.0 имеет обновленную панель администрирования, в связи с этим произошли следующие изменения:

  • JS, CSS скрипты, располагающиеся в папке /resource, используемые в административной панели, изменили свое местоположение или название. Мы перегруппировали и переписали практически все наши jQuery плагины, что использовались в административной панели, сохранив при этом основной замысел работы каждого из плагинов. Некоторые CSS стили, используемые в ReadyScript 2.0 были исключены.
  • В новой административной панели доступны все классы Bootstrap 3, что позволяет быстро создавать любые пользовательские интерфейсы. И в то же время, если вы использовали ранее именование CSS-классов, схожее с bootstrap, в собственных стилях, теперь они могут работать некорректно.
  • Все диалоговые окна и страницы административной панели стали адаптивными. Пожалуйста, проверьте, являются ли ваши разделы административной панели адаптивными. Ваши пользователи должным образом оценят удобство работы с административной панелью через мобильные и планшетные устройства.
  • Для обеспечения адаптивности всех страниц административной панели, мы внесли корректировки в верстку и стили всех шаблонов всех модулей административной панели. Если у вас имелись индивидуальные изменения какого-либо шаблона административной панели, пожалуйста, приведите их в соответствие с новыми шаблонами.

Вот краткий список наиболее важных новых возможностей:

  • Добавлены классы для работы со счетчиками в админ. панели: Main::Model::NoticeSystem::Meter, Main::Model::NoticeSystem::MeterAPI, Main::Model::InternalAlerts, Main::Model::ReadedItemApi. Подробнее здесь.
  • Любой модуль может добавить собственный тест, который будет выполнен во время самотестирования в разделе Управление -> Настройка системы. Для этого достаточно добавить класс-потомок от в пространстве имен {ВАШ МОДУЛЬ}.
  • Добавлена возможность перегружать css, js, tpl файлы в папке с темой оформления с помощью .my.css, .my.js, .my.tpl файлов соответственно.
  • Добавлен модуль yandexmarketcpa («Заказы на Яндексе»).
  • Добавлен модуль atolonline («АТОЛ ОНЛАЙН»).
  • Доработан контроллер редактирования заказов в административной панели. Добавлена упрощенная возможность для добавления произвольных полей в заказ, через установку области видимости поля. Доступны следующие области видимости: footer (в нижней части заказа), depend (в части заказа, зависимой от статуса), info (в левой информационной части), delivery (в блоке доставки), payment (в блоке оплаты). Пример добавления произвольного поля в заказ через дополнительный модуль:
    <?php
    namespace ModuleName\Config;
    use \RS\Orm\Type as OrmType;
    class Handlers extends \RS\Event\HandlerAbstract
    {
    function init()
    {
    $this->bind('orm.init.shop-order');
    }
    /**
    * Расширяем объект заказа
    *
    * @param $order
    public static function ormInitShopOrder($order)
    {
    $order->getPropertyIterator()->append(array(
    //Поля, которые отображаются только в определенном статусе заказа
    'custom_field_1' => new OrmType\Enum(array(1, 2), array(
    'description' => t('Причина отклонения заказа'),
    'hint' => t("Необходимо для сервиса 'Заказы на Яндекс'"),
    'listFromArray' => array(array(
    1 => 'Причина 1',
    2 => 'Причина 2'
    )),
    'visible' => false,
    'dependVisible' => true, //Отображать в секции depend
    'attr' => array(array(
    //Через запятую указываем с каким статусом связано поле
    'data-depend-status' => implode(',', array(UserStatus::STATUS_CANCELLED))
    ))
    )),
    //Поля, которые отображаются в информационной зоне
    'custom_field_2' => new OrmType\Integer(array(
    'description' => t('Произвольное поле 1'),
    'visible' => false,
    'infoVisible' => true, //Отображать в секции info
    )),
    //Поля, которые отображаются в информационной зоне
    'custom_field_2' => new OrmType\Integer(array(
    'description' => t('Произвольное поле 1'),
    'visible' => false,
    'paymentVisible' => true, //Отображать в секции payment
    ))
    ));
    }
    }