Сегодня: Четверг, 28.03.2024, 13:37 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Военные технологии на пользовательском рынке

Спецэффекты в Cinema4D

Blu-ray приводы для ПК

Новинки в области цифровых камер

Программы — виртуальные гитаристы
Главная » WEB

Знакомьтесь, CMS Platinum

12.05.2013
Это довольно уникальная статья, поскольку исходит напрямую от автора профессиональной CMS (Content Management System — система управления контентом), а именно, вашего покорного слуги, Кристофера и, соответственно, продукта CMS Platinum. На момент опубликования этой статьи на этой CMS работает уже 18 интернет-магазинов, 10 из которых были переведены с других CMS.

 



Предпосылки для написания собственной CMS, а на это нужно было действительно решиться и потратить не один месяц плотного проектирования/кодинга/тестирования, были очевидными: нужно было написать собственный движок для высоконагруженного сайта интернет-гипермаркета с большим количеством современных «наворотов», специфичных для современной интернет-торговли, высокими требованиями к безопасности и стабильности работы, удобству обслуживания, и что, я впоследствии реализовал, но не вставил в CMS Platinum — масштабировании базы данных гипермаркета на несколько десятков сайтов-сателлитов. Планируемое количество товаров тогда было около 15.000, разделов товаров (категорий и подкатегорий) — до 90, посещаемость — до 15000 уникальных в сутки, скорость загрузки страницы с 75 товарами на главной (30 — обычный вывод, 15 — слайдер хитов продаж, 15 —слайдер новинок, 15 — слайдер рекомендуемых) плюс баннеры не должна превышать 1,5-2 секунд. 

Интернет-торговля, как и реализация всевозможных интернет-сервисов в странах СНГ, во всем мире растет со скоростью накатывающегося снежного кома, работа в этом направлении мне показалась перспективной, и, отвлекшись от своих экспериментов с программированием искусственного интеллекта, я сразу переключился на эту нишу. 

Нужно отметить, что перед тем как заняться непосредственно разработкой собственной CMS, я загрузил и запустил у себя на Денвере в общей сумме около 150 различных CMS. Внимательно рассмотрел каждую из них, записывая себе в блокнот их плюсы и минусы. Естественно, дополнительно внимательно изучил и собрал информацию о том, как и на базе каких технологий работают гранды рынка, начиная от eBay и Amazon, и заканчивая популярными сток-сайтами (stock — продажа фото, видео, программ и т.п. через интернет).

Также огромным подспорьем оказался просмотр многочисленных видеоуроков, в которых демонстрировались разные методики и способы решения типовых ситуаций. К сожалению, забыл сейчас имя того датчанина, уроки которого мне понравились больше всех за простоту и емкость используемых им алгоритмов. В общем, все было очень интересно. После такого подробного изучения, я уже примерно представлял то, что хочу сделать и, главное, как. 

Многие могут спросить, почему не Joomla, WordPress, Drupal и пр.? Ведь по такому пути идет множество программистов, особенно начинающих и начитавшихся в интернете о том, как «за 5 минут создать интернет магазин и построить успешный бизнес». Не хочу вдаваться в дискуссии — эта тройка точно не подходит, тяжелый неоптимизированный код тому основная причина. Тем более, что требуемый функционал можно легко программировать самостоятельно на PHP, вместо того, чтобы искать какие-то плагины и модули. 

Второе, от чего я отказался — использование фреймворков и всевозможных шаблонизаторов типа smarty. Дело в том, что их, равно как и вышеназванные Joomla, WordPress, Drupal нужно подстраивать под свои задачи, они не выдерживают конкуренции по производительности по сравнению с тем, что написано с пониманием и под конкретные задачи в нативном коде. Это мне напомнило те времена, когда я сталкивался в современном геймдеве с тем фактом, что игры, разрабатываемые на каком-нибудь супер-дуппер популярном «движке» или ох-какой технологии еле выводили визуализацию спрайтов на компьютерах, которые могли запускать последние TES или Risen. Конечно, сам пример обобщенный, но яркий. Также незадолго до написания своего движка, я работал над переводом одного интернет-магазина со smarty на обычный PHP и в том конкретном случае, производительность движка после его обновления увеличилась на 80%. 

В общем, ничего никому доказывать не хочу, тем более поднимать тему, мое решение было одно — нативный PHP, программирование в редакторе sCite (эта программа является альтернативой Notepad++).  



CMS Platinum 1.2






Сейчас уже 2013 год и в мае появится CMS Platinum 1.2, которая разделена на две модификации — обычную и Pro. Версия Pro предназначена для высоконагруженных ресурсов, оптимизирована за счет использования кэширования на стороне сервера (обычное кэширование, memcashed), использования Cron, и множества собственных ноу-хау, улучшающих производительность. 

Для тестирования системы на высоких нагрузках разработан специальный модуль с отдельным бэк-эндом администрирования и статистики производительности. Подключая его, администратор может увидеть соответственно всю статистику по производительности, количеству и скорости выполнения запросов к БД, и в дальнейшем принимать решения по оптимизации (предлагаются готовые варианты на выбор). Бэк-энд производительности подключается опционально через основную панель администрирования, например, на сутки или неделю для сбора статистики. Администратор уже видит наглядно проблемные места, и в случае необходимости, может, например, переключить проблемный запрос к базе данных на вариант Cron+memcahed, указав частоту обращений (одно из решений).

После внесенных изменений, вся система (сайт) переключается на новый режим работы, и бэк-энд производительности теперь можно отключить.

Второе отличие версии Pro от обычной заключается в большем количестве предлагаемых модулей, таких как, например, ротатор баннеров/контента (случайная выборка периодически кэшируется на стороне сервера, а не производится прямым обращением «пользователя» к БД), и прямой сервисной поддержкой для случаев, когда владельцы CMS Platinum Pro хотят добавить новый функционал. Если он (этот функционал) способствует дальнейшему улучшению CMS Platinum, то разработка с нашей (или моей) стороны будет бесплатной. 





И третье ключевое отличие версии Pro — реализация отдельных субдоменов для поставщиков/продавцов, которые в рамках собственных админ-интерфейсов могут самостоятельно добавлять свои товары, информацию об услугах и так далее. Чтобы было более понятно, скажу, что этот функционал сродни тому, что вы можете увидеть у ресурсов shop.by или dial.by. 





Если говорить об общем сравнении версий CMS Platinum 1.0 и 1.2, то в 1.2 основной упор был сделан на улучшение характеристик производительности, добавление функционала, а также создание CSS3-альтернатив элементам, написанным на JavaScript(jQuery). И еще одна новинка CMS Platinum 1.2 — модуль калькулятора. Он написан на JavaScript/XHTML. Содержит чекбоксы, комбобоксы, поля ввода количества с подсчетом суммы в реальном времени и кнопкой отправки заказа на e-mail. Для этого модуля написано подробное руководство на доступном понятном языке, поэтому изменять его можно по своему усмотрению.


Для справки


CMS Platinum — это собственная разработка, стартовавшая в 2012 году и уже опробованная в нескольких крупных проектах — интернет-магазинах. Именно для них и на их базе она создавалась изначально. Проект развивается поэтапно, при этом каждая версия CMS является законченным продуктом, готовым к работе сразу после установки.

Основными заказчиками CMS Platinum являются студии веб-дизайна и владельцы интернет-магазинов. 

CMS Platinum не(!) предназначена для совсем новичков и представляет собой базовый конструктор, включающий БД (MySQL) с готовой структурой, панель администрирования, основной дизайн-шаблон, набор модулей и рабочую документацию.


Ключевые особенности CMS Platinum


  • CMS написана на нативном PHP, XHTML, JavaScript (jQuery), Ajax с использованием CSS3.
  • Высокая скорость работы и производительность движка сравнимы с более дорогими коммерческими CMS.
  • Отдельное внимание было уделено вопросам безопасности.
  • БД — MySQL. Оптимизированная структура таблиц. MyISAM, ежесуточное резервное копирование.
  • Многоуровневая система разделов (количество уровней без ограничений).
  • Оптимизированный поиск.
  • Удобная админ-панель. Визуальные (WYSIWYG) текстовые редакторы, загрузка изображений, менеджер файлов и т.п.
  • Каждый товар может быть прикреплен сразу к нескольким разделам (до пяти).
  • Автоматическое и/или ручное занесение товаров в рекомендованные, новинки, хиты продаж (выводятся в отдельных JS-слайдерах на страницах сайта).
  • 18 различных вариантов JavaScript-слайдеров (8 вертикальных, 4 горизонтальных и 6 вертикальных/горизонтальных).
  • Автоматическое добавление подарков в зависимости от цены товара (до пяти категорий подарков).
  • Отдельная таблица поставщиков (их описания и логотипы могут автоматически выводиться совместно с товарами).
  • Всевозможные блоки-«врезки» для вставки баннеров и дополнительного контента в страницы сайта (через админ-панель). Ротатор баннеров.
  • Облако тегов (5 вариантов исполнения).
  • Функции обратного звонка, онлайн-консультанта, другие формы обратной связи.
  • Бронирование товаров.
  • Модуль "Сейчас смотрят".
  • Модуль отображения недавно просмотренных товаров.
  • Реализация «с этим товаром покупают».
  • Корзина товаров связана с интерфейсом админ-панели, также информация о заказе может отправляться на любой e-mail.
  • Два уровня доступа к части администрирования — администратор и оператор.
  • Возможность переключения тематического интерфейса фронт-энда из админ-панели, а именно, кроме основной используется четыре темы: Новый Год, День Святого Валентина, 8 марта, 23 февраля.
  • Базовый дизайн-шаблон.
  • "Хлебные крошки".
  • Автоматический подсчет товаров в категориях и их подкатегориях.
  • Возможность создания динамического многоуровневого меню. Добавление отдельных страниц с различной иерархией через админ-панель.
  • Модуль калькулятора.
  • ...и др.  


Какие планы развития у CMS Platinum?


На данный момент проводятся работы по переводу CMS Platinum, документации и т.п. на английский язык. Лично же я, как автор этой CMS, сейчас решаю вопрос написания чат-сервера (собственный вариант онлайн-консультанта). Меня когда-то подначили языком программирования Erlang, поэтому попытаюсь реализовать изначально что-то на нем.  В целом, сайт проекта — www.igd.by, там вся текущая информация. Также там вы можете узнать, что в рамках основного дизайн-шаблона опционально можно уже включать микроразметку Schema.org.  

Кристофер




Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz