Что нового в Rapido.CMS 2.14

Карты и геометки

Ранее для отметки на карте создавался параметр, добавляемый к модулю, в котором нужно было заранее выбрать каким api пользоваться (Google или Яндекс). Кроме того, карта была интерактивной прямо в карточке редактирования материала и занимала большую площадь в карточке, что иногда доставляло неудобства при редактировании материалов.

В новой версии поле "Отметка на карте" в карточке материала отображается в виде статичной превью и занимает немного места. При клике на превью открывается окно с интерактивной картой, где можно изменить координаты и произвести геопоиск. Выбрать api, используемый для визуализации карт, можно в системных настройках сайта, при этом поменять этот api можно в любой момент. Доступны карты: Google, Яндекс, Here.com.

Добавлена новая библиотека для работы с картами не зависимо от выбранного api. Эта библиотека подходит не только для добавления карт на сайт, но и позволяет нанести несколько отметок на одну интерактивную карту, выбрать используемый маркер и масштаб. Пример использования библиотеки:

loadScript( "/control/tpl/js/maps.js", function(){
    var api = "yandex", // Api лучше подгрузить из опций сайта, например через data-аттрибут
        maps = new rapido_maps(),
        shops = [ // Координаты можно задать как строкой, так и массивом
            {point:'59.853717,30.320351', title:'Магазин1', image: '/image1.jpg', link:'/shop/1/'},
            {point:[ 59.913839, 30.350696 ], title:'Магазин2', image: '/image2.jpg', link:'/shop/2/'}
        ],
        startPoint = shops[0].point;

	maps.loadApi( api );
	maps.markerUrl = "/img/map_marker.png";
	maps.markerSize = [36,57];
	maps.showPoints( "container_id", startPoint, shops );
});

Другие примеры можно найти в исходнике.

Корзина

В модуль "Корзина" добавлена опция с адресом возврата после отправки заказа.

Изменена работа с вариантами доставки в корзине. Теперь варианты парсятся, а не выводятся через select. Добавлена также возможность запретить какой-либо способ доставки в зависимости от стоимости заказа. Например, если для варианта доставки указать стоимость -1 при сумме заказа до 500р, то это вариант не будет доступен для выбора, пока заказ не будет больше 500р.

Файловый менеджер

  • Теперь в режиме отображения файлов плиткой можно выбирать файлы для удаления.
  • Добавлена возможность переименования файлов.
  • Исправлена ошибка, которая приводила к открытию корневого каталога /upload/ после загрузки файлов во вложенные папки.

Система журналирования

Новая система ведения логов позволяет одновременно выводить на экран сообщения и производить запись в файл. Также предусмотрена ротация логов. При достижении лог-файла 500кб файл архивируется. Всего хранится до 8 архивов на один лог-файл. Ротация архивов позволяет всегда иметь актуальную последовательность событий. Система журналирования подходит как для cron-задач, так и для системных событий. Например в настройках почты появилась опция "Вести журнал почтовых отправлений". Если эта галочка установлена, то в лог файл попадут данные об отправке писем системой Rapido.CMS, удачная отправка или нет (если нет, то пишется ошибка), адрес отправителя и получателя, а также тема письма.

Оптимизации

Оптимизация изображений
Добавлена опция, которая включает оптимизацию изображений во время загрузки средствами Image Magic. Также добавлены настройки степени сжатия для JPG файлов.

Добавлена опция "Сжимать HTML-код" в модуле "Оптимизация сайта". При включении этой опции HTML-код сайта будет очищаться от комментариев, лишних пробелов и т.п.

Удалены неиспользуемые файлы в плагине codemirror

В модуль "Отзывы о товарах" добавлено кэширование рейтинга, для использования со списками товаров без лишних запросов в БД

Система сборки ресурсов

Для того, чтобы уменьшить количество запросов, требуемых браузеру для отображения страницы стили и скрипты нужно собирать в один файл. Для сборки стилей используется штатная возможность препроцессора Less в Rapido.SDK. Все необходимы стили инклюдятся в основной common.less и на выходе получаем сжатый файл common.css, со всеми дополнительными стилями из файлов добавленных путем @include.

Сборка скриптов немного сложнее. В файле tpl/js/jspack.json перечисляются файлы, которые нужно собрать в один. После редактирования этого файла в Rapido.SDK нужно нажать "Собрать файлы". На выходе получаем файл jspack.js с содержимым всех перечисленных файлов в сжатом (минифицированном) виде. Для разработке можно продолжать использовать файл tpl_async.js, который только подключает необходимые скрипты, а в production-версии уже подключить jspack.js вместо tpl_async.js. При этом вся дополниетальная логика и инициализация плагинов "переехала" в файл main.js

Слайдеры

В новой версии штатные слайдеры rpSlider и DotsBanner перенесены в файл fallback.js для обратной совместимости. Вместо них добавлен слайдер slick и базовые настройки для него.

Другие правки

Добавлен символ "-" для названия сео-файлов.
При добавлении сео-файлов название файла проходит валидацию. В валидации не был включен символ "-", хотя некоторые системы верификации требуют создания файла с этим символом.

В табличное редактирование списка материалов добавлена галочка (раньше была цифра 0 или 1).

Исправлено удаление резервных копий
Исправлена ошибка при проверке валидности передаваемого адреса файла

Добавлена поддержка телефонов начинающихся на 8-800 в функцию get_tels()

Обновлены до последних версий библиотек JQuery 3.3.1 и FancyBox 3.4.1

Добавлены функции для работы с "избранным" на основе куки в  common.js

Перестроение ссылок
В модуль "Настройки сайта" добавлен пункт "Перестроить ссылки", который исправляет ссылки, если они по каким-то причинам испортились. Например при отключении инетернета во время редактирования раздела в браузере Chrome может произойти потеря url'а