Версия: 3.x
Обновление 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
    ))
    ));
    }
    }
    \code