- (Обновлено: ) Леонид Лепко
При создании сайта мы часто делаем выбор в пользу CMS. Давай попробуем разобраться, чем же обусловлен наш выбор, и как определиться с подходящим инструментом.
Предисловие
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 будет лучшим выбором для создания интернет-магазина, если отбросить страх работы с ее структурой и кодом, вооружиться терпением и освоить минимальные навыки программирования.
Через некоторое время вы увидите, что вся ваша работа сведётся к простому копированию/вставке и небольшому форматированию кода, а ваш магазин сможет приобрести достойный вид и конкурировать по производительности и юзабилити с лидерами рынка.
Продолжение следует …
Еще по теме:
- Как посмотреть тип рендеринга на странице и влияет ли обработанный html-код на ранжирование сайта? Как быстро посмотреть какой тип рендеринга на странице? Влияет ли обработанный html-код на ранжирование сайта? Ответ Чтобы быстро посмотреть тип рендеринга на странице, используйте Google...
- Как закрыть от индексации тестовый SPA сайт и выкинуть из индекса страницы? Есть тестовый SPA сайт. Программисты его изначально не закрыли от индексации. Сейчас очень много страниц сайта попало в индекс. Как правильно сделать, чтобы и сайт...
- Что необходимо закрывать от индексации на сайте Что такое индексация сайта Что следует закрывать на сайте Размещённый контент Страницы Весь сайт Какие данные закрывать не стоит Как закрывать от индексации контент, страницу...
- Как должны выглядеть метатеги для коммерческой страницы? Везде пишут про обязательную настройку мета тегов, но нигде ни приводят примеры этих самых идеальных написаний. Как должен выглядеть мета дескрипшн для коммерческой страницы? Приведите...
- Как правильно для SEO реализовать прелоадер на сайте? Реализовали прелоудер, который есть по умолчанию, оверлеем накладывается поверх всего и после загрузки страницы ((window).load ) скрывается JS-ом. Вопрос: как будет на это реагировать гуглбот,...
Есть вопросы?
Задайте их прямо сейчас, и мы ответим в течение 8 рабочих часов.
Спасибо, интересная статья!
Насчет MVC очень познавательно!
Обязательно хотел бы напомнить об очень известном движке Вордпресс. Вот к примеру сайт созданный на нем https://drev.biz/ очень большой функционал, много возможностей, работает на большой скорости (загружается оперативно) если не перегружать фотками и видео. Думаю программисты оценят превосходства этого движка…
Cогласен с автором. Система для создания интернет-магазинов первоклассая. Уже сделали более 200 проектов и ни разу не разочаровались. Рекомендуем , как лучшее решение для малого и среднего бизнеса.
Для магазина соглашусь. Но для доски объявлений какой движок посоветуете? Заранее благодарю за профессиональный совет.