- PVSM.RU - https://www.pvsm.ru -
Недавно на рынке eCommerce CMS систем засияла новая звездочка от ReadyScript lab. Система обладает рядом уникальных особенностей, поэтому я решил посвятить свой пост этому замечательному продукту от наших соотечественников.
Система обладает большим списком классических возможностей, наиболее важными среди которых являются:
Архитектура системы позволяет:
Из отличительных особенностей:
Ко внешнему виду разработчики подошли как настоящие скульпторы – отсекли все лишнее. Интерфейс административной панели получился очень простой и элегантный. Правда, имеются некоторые неочевидные, но очень удобные фишки, из-за которых разработчики даже выпускают статьи в своем блоге под названием «Секреты пользовательского интерфейса».
Главная страница административной панели – это рабочий стол с весьма полезными и информативными виджетами, их можно перетаскивать и настраивать на свой вкус.
Остальные разделы административной панели очень похожи между собой, что позволяет, разобравшись с одним разделом, уверенно работать со всей системой.
В панели администрирования практически все происходит без перезагрузки страницы, что существенно ускоряет работу системы. В то же время остается возможность нажать средней кнопкой мыши на любую ссылку, что повлечет открытие нужного содержимого в отдельной вкладке. Это очень удобно, например, для редактирования одновременно нескольких товаров.
В целом, админ. панель обладает всем необходимым для работы с большим количеством данных:
Если переключиться на клиентскую часть интернет-магазина, то особенно меня порадовала реализация режима редактирования. В этом режиме можно не просто настраивать блоки, отображаемые на сайте, но и непосредственно удалять, добавлять и редактировать весь контент прямо на сайте. Например, наведя мышь на любой товар, категорию, комментарий, статью можно нажать правую кнопку мыши и перейти к редактированию выбранного объекта, находясь на той же странице.
В дистрибутив продукта включены 4 шаблона, 3 из которых:
Для демонстрации адаптивности новых тем оформления, на сайте разработчика присутствует online “эмулятор планшета и смартфона”, с помощью которого можно посмотреть, как выглядит тот или иной шаблон на разных устройствах.
Как утверждают разработчики, один шаблон они намеренно сделали не адаптивным и не по сетке gs960, чтобы у начинающих веб-мастеров был простой шаблон для модификации.
Архитектура системы построена на модели MVC. Движок делится на фреймворк и модули. Фреймворк построен на основе PHP 5.3 и является объектно-ориентированным. Он содержит множество классов, решающих типовые задачи. В качестве шаблонизатора в системе используется последняя версия Smarty. Стоит отметить, что код в системе документирован в формате phpDoc.
Модули хорошо инкапсулированы и содержат в своей папке все необходимые данные: модели, контроллеры, шаблоны, css-файлы, js-файлы, изображения, конфигурационные файлы. Модуль может влиять на различные процессы в системе путем обработки событий. Вся «внешняя» деятельность модуля легко контролируется, так как в ReadyScript подписка на события всегда происходит в одном классе (соответственно в одном файле), в пространстве имен модуля.
Все в ReadyScript пронизано ORM объектами, к слову сказать, они построены по паттерну ActiveRecord.
Почему так сделано? Ответ станет очевидным, если понять абстракцию, которую заложили разработчики в «ORM объекты».
ORM объект в ReadyScript – это объект в котором описаны свойства, который может себя сохранять и загружать из некого абстрактного хранилища(это может быть БД, но не только) и сгенерировать для себя HTML-форму.
Важно отметить, что в момент инициализации ORM-объекта (это происходит единожды для одного класса объектов) в системе генерируется событие orm.init.КЛАСС_ОБЪЕКТА, которое может перехватить любой модуль. В процессе обработки данного события можно изменить состав свойств ORM объекта. С помощью данной возможности любой сторонний модуль может легко добавить, например, новое свойство в объект товара, которое автоматически отобразится в карточке товара в админке.
Разработчикам никогда не придется создавать какие-либо поля, индексы в базе данных вручную, система все это сделает автоматически, исходя из описания ORM Объекта.
Следующее, на чем хочется заострить внимание – это подсистема маршрутов(routing). Каждый модуль описывает свои маски URL, которые он способен обрабатывать определенным фронт контроллером. В шаблонах, нигде не используются прямые ссылки на внутренние страницы сайта, вместо них можно увидеть примерно такие конструкции:
{$router->getUrl(‘catalog-front-product’, [id => 222])}
Конструкция вызывает метод getUrl у менеджера маршрутов, который возвращает полный путь с учетом подстановки параметров, в данном случае на товар с id=222.
Такой подход позволяет любому стороннему модулю формировать всегда корректные ссылки на нужные страницы сайта, а также централизовано менять всю карту адресации на сайте.
Авторы предусмотрели несколько стандартных страниц административной панели:
За сборку данных страниц отвечает объект «помощник» (CrudCollection), который готов скомпоновать любую из описанных выше страниц. Разработчику необходимо лишь «загрузить» объект «помощника» нужными составляющими в контроллере.
class CustomAdminController extends RSControllerAdminCrud
{
function helperIndex()
{
//...
return new RSControllerAdminHelperCrudCollection(
$controller_object, //Объект текущего контроллера
$api, //Объект модели
$url_object, //Объект, содержащий все входящие данные от суперглобальных массивов...
array( //Опции
'topToolbar' => new RSHtmlToolbarElement(...), //Добавить верхнюю панель кнопок
'bottomToolbar' => new RSHtmlToolbarElement(...), //Добавить нижнюю панель кнопок
'filter' => new RSHtmlFilterControl( ... ), //Добавить фильтр
'table' => new RSHtmlTableElement( ... ), //Добавить таблицу
'paginator', //Добавить пагинатор
'treeFilter' => new RSHtmlFilterControl( ... ), //Добавить фильтр для дерева категорий
'tree' => new RSHTMLTreeElement(...), //Добавить дерево категорий
'viewAs' => 'tableTree' //Страница с объектами, распределенными по категориям
)
);
}
//...
}
Уже давно прошли те времена, когда нужно было экономить каждый килобайт на
Система изображений ReadyScript как раз хранит «крупное» изображение на сервере, и позволяет в любой момент в коде или шаблоне получить изображение нужных размеров и типа масштабирования. Да, конечно, система не хранит то изображение, которое загружено, она его все равно пережимает до заданных в настройках «больших» размеров, по умолчанию это 1500x1500px. Ссылка на изображение формируется мгновенно, а непосредственное создание миниатюры происходит при первом открытии картинки браузером.
Такой подход значительно ускоряет процесс создания проекта и развязывает руки дизайнерам, ведь именно тема оформления теперь определяет какие изображения необходимо показать пользователю.
Платформа ReadyScript распространяется в виде коробочного продукта с открытым исходным кодом в трех редакциях.
ReadyScript является платной CMS, но обладает очень гибкими условиями лицензирования, в частности:
В стандартную лицензию (не важно, временную или вечную), включено право пользования двумя сайтами (в рамках мультисайтовости).
Среди дополнительных лицензий разработчики предлагают:
Столь гибкие условия лицензирования позволяют начать пользоваться минимальной редакцией платформы и постепенно увеличивать функционал, переходя на более полные редакции, по мере роста оборотов интернет-магазина.
ReadyScript явно создавался без оглядки на существующие продукты на рынке. Наверное поэтому, он получился столь необычным и каким-то особенным, но весьма удобным, как с точки зрения инструментов управления, так и с точки зрения PHP API. Несмотря на то, что у продукта есть руководство для пользователей и разработчиков, код документирован, на мой взгляд, с продуктом будет сложно разобраться новичку из-за разветвленной объектной модели, однако опытные разработчики наверняка не увидят в этом большой проблемы.
Обширный функционал способен покрыть подавляющее большинство запросов на разработку интернет-магазинов, а модульная архитектура позволит использовать единожды написанный модуль для всех клиентов в будущем.
Единственная сложность, с которой могут столкнуться разработчики в текущий момент – это отсутствие площадки для общения сообщества. Однако разработчики ReadyScript уверяют, что эта проблема скоро будет решена.
Официальный сайт – http://readyscript.ru [2]
Автор: Oleg_Yozhik
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/61834
Ссылки в тексте:
[1] хостинге: https://www.reg.ru/?rlink=reflink-717
[2] http://readyscript.ru: http://readyscript.ru
[3] Источник: http://habrahabr.ru/post/225541/
Нажмите здесь для печати.