- (Обновлено: ) Леонид Лепко
Предисловие
CMS сделали большой вклад в развитие веб-технологий. Несмотря на недостатки, их появление было неизбежным.
Управляющие системы зародились задолго до появления первых статичных сайтов, предоставляя пользователю свое главное преимущество – административный интерфейс, позволяющий проводить различные манипуляции с контентом, создавать разнообразные приложения, заниматься почтовой рассылкой либо просто редактировать текущую дату и время.
Споры об использовании CMS еще не окончены, но одно можно сказать точно – они идеально подходят под определённые нужды пользователя. Они позволяют абстрагироваться от технической части системы и уделять внимание исключительно административной работе, без потери времени на изучение различных средств программирования. Благодаря своей популярности и простоте они превратились в некий конвейер по выпуску шаблонных сайтов, но богатство выбора и самодостаточность CMS позволяют каждый проект сделать особенным.
Итак, мы начинаем серию статей, которые помогут вам по-новому взглянуть на уже полюбившиеся либо ранее не используемые системы управления контентом. Будут рассмотрены как коммерческие, так и free продукты.
Условно CMS можно классифицировать по следующим признакам:
- CMS узкого назначения
- многофункциональные
В свою очередь CMS узкого назначения можно разделить на основные категории:
1. Интернет-магазины
2. Форумы
3. Галереи
4. Блоги, дневники
В обзоре мы попробуем разобраться, что же делает CMS такими, какими мы их знаем, что и как можно улучшить в них. Рассмотрим технические моменты, а также заглянем в административную часть и выясним, какой набор опций может нам предоставить каждая из систем.
Панель управления OpenCart
Отметим некоторые интересные особенности OpenCart:
- Цена товара, налоги, стоимость доставки генерируются автоматически в зависимости от выбранных параметров товара.
- Безграничное количество дополнительных изображений для товара.
- Добавления видео и 3d роликов для товара.
- Многофункциональная система отчетов о продажах, товарах, покупателях и т.д.
- Встроенная поддержка популярных платежных систем (webmoney, robokassa..), также в сети есть множество модулей, расширяющих выбор.
- Наличие схем, дающих свободу действий в редактировании блоков сайта любой страницы.
- Многоязычность.
- Поддерживает интересное расширение vQmod. Принцип его работы заключается в следующем: можно создать любые изменения, которые вы хотите внести на сайт без необходимости править код. При подключенном vQmod файл с созданными изменениями будет загружаться первым, тем самым заменяя собой выбранные блоки сайта.
- Наличие библиотеки с множеством полезных функций, которые изначально не подключены, и их не видно в админпанели. Например, водяной знак для фото товаров, выгрузка товаров в YML, подключение модулей кэширования, вывод дополнительных показателей по товарам в его карточке и на странице категорий. Все это интегрируется с минимальными усилиями и вводом нескольких строк кода.
- Возможность редактировать практически любой блок сайта, включая и его теги, без необходимости поиска соответствующего шаблона и его нагромождения.
OpenCart качественно объединила простоту и минимализм, сделав ставку на юзабилити и быстродействие.
Определенно к минусам системы можно причислить отсутствие возможности добавления расширений через админчасть.
Все файлы дополнений должны копироваться через файловую систему прямо на диск. Однако это же добавляет гибкости системе. Дело в том, что OpenCart написана с использованием парадигмы программирования mvc.
Cправка
mvc (model, view, controller) позволяет разделить наше приложение на уровни:
Model. Уровень работы с данными. Производит все манипуляции по вставке, удалению, обновлению и выборке контента из баз данных, текстовых файлов и других источников хранения информации.
Controller. Здесь содержится вся логика сайта. Именно контроллер отвечает за обработку данных, которые ему вернула модель, либо же наоборот передачу обработанных данных с браузера (это может быть, например, заполненная вами форма регистрации) в модель на сохранение в базу. Контроллер отвечает за работу сайта и отдельных модулей в частности. Таких, как поиск по сайту, вывод новостей, комментирование, многоязычность и т. д.
View. Уровень отображения данных. Здесь и находится вся верстка сайта. View получает обработанные данные из контроллера и выводит их на экран. Важно понять, что на этом уровне не должно быть никакого кода, кроме html разметки и данных из контроллера.
Как это работает?
Открываем, например, страницу со списком новостей на сайте. Как всегда, первым у нас открывается файл index.(php, html, pl и т.д.), который определяет, какую страницу открыли и что нужно делать дальше. После этого он снимает с себя ответственность и вызывает соответствующий контроллер, который, в свою очередь, обращается к модели за списком новостей и после их обработки возвращает их в view, где они будут успешно предоставлены пользователю.
Важный момент: грамотно написанные при помощи mvc CMS работают гораздо быстрее и продуктивнее, чем CMS, имеющие беспорядочное и весьма не малое количество файлов (большая часть этих файлов зачастую не используется).
В итоге файловая структура такого приложения будет иметь следующий вид (на примере OpenCart):
Данная структура файлов позволяет быстро и просто расширить функционал системы под наши потребности, конечно, при наличии определённых навыков программирования. Благодаря этой возможности существует множество платных и бесплатных дополнений под OpenCart, которые легко модифицируются.
Вывод
OpenCart будет лучшим выбором для создания интернет-магазина, если отбросить страх работы с ее структурой и кодом, вооружиться терпением и освоить минимальные навыки программирования.
Через некоторое время вы увидите, что вся ваша работа сведётся к простому копированию/вставке и небольшому форматированию кода, а ваш магазин сможет приобрести достойный вид и конкурировать по производительности и юзабилити с лидерами рынка.
Продолжение следует …
Еще по теме:
- Обзор CMS-систем — какой движок выбрать? Часть 1
- Четыре совета от представителей Google
- Зеркала сайта и объединение доменов
Есть вопросы?
Задайте их прямо сейчас, и мы ответим в течение 8 рабочих часов.
-
Сергей
-
Александр
-
Илья