Теоретическая часть
CMS (от английского Content Management System) - система управления содержимым (контентом) - информационная система или компьютерная программа, которая используется для организации и обеспечения процесса по совместному созданию, управлению и редактированию содержимого (контента) сайта.
Основной задачей такой системы является сбор и объединение в единое целое, на основе ролей и задач, различных источников информации. Эти источники могут быть доступны как внутри самой организации, так и вне её пределов. К тому же данная система обеспечивает возможность взаимодействия различных сотрудников, проектов и рабочих групп, с теми базами знаний и данных, которые были ранее созданы, в таком виде и таким способом, чтобы сделать процесс поиска и повторного использования максимально комфортным и привычным.
Предоставляемые возможности:
Использование шаблонов отображения, автоматически применяемых к новому или существующему контенту.
Простота редактирования контента благодаря визуальным редакторам. От пользователя не требуется знание языков программирования и разметки;
Расширяемость за счет установки дополнительных модулей и плагинов;
Визуализация содержимого, благодаря которой пользователь может увидеть создаваемый контент до отправки его на сайт (предварительный просмотр).
Автоматическое обновление и следование веб стандартам;
Управление документооборотом;
Единая категоризация всех видов содержимого (таксономия).
Основные функции CMS:
предоставление инструментов для создания содержимого, организация совместной работы над содержимым;
управление содержимым: хранение, контроль версий, соблюдение режима доступа, управление потоком документов;
публикация содержимого;
представление информации в виде, удобном для навигации, поиска.
Content Management Framework (CMF) — это каркас (фреймворк управления содержимым) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения.
Если основная задача универсальных систем управления содержимым — простота создания сайта без вмешательства программиста, то есть — конструктор сайтов, то каркас управления содержимым — это конструктор систем управления содержимым (в том числе узкоспециализированных) для программиста. Благодаря такому подходу сайт, созданный с помощью каркаса, по сравнению с сайтом на базе системы управления содержимым, может иметь более простую и безопасную в работе административную панель (в которой отсутствуют функции настройки сайта под любые задачи) и быть менее требовательным к ресурсам системы (каждый модуль реализует именно те функции, которые необходимы в работе сайта). При наличии грамотно спроектированного каркаса и готовых модулей, программисту остается только сборка этих модулей в единое пространство и оформление вывода в соответствии с пожеланиями клиента, то есть разработка сайта на основе каркаса вполне сравнима по трудоемкости с разработкой сайта на основе универсальной системы управления содержимым.
Сложности могут возникнуть, если программист-пользователь фреймворка столкнѐтся с программными ошибками в его реализации. Не будучи экспертом в архитектуре фреймворка, он может испытывать затруднение с еѐ локализацией, не может быть уверен, сделал ли он ошибку сам, или столкнулся с ошибкой в CMF. Глубокие знания архитектуры фреймворка могут понадобиться и при его тонкой настройке, если программист желает получить максимальную производительность.
Провести чёткую границу между CMS и CMF порой сложно. Основным отличием является то что на CMS можно построить сайт не написав ни одной строчки кода.
Основные базовые понятия и термины, использующиеся в CMS для работы и функционирования:
Оформление. В данном разделе происходит выбор темы визуальной структуры сайта. Основные настройки здесь – включение/отключение определенных элементов на страницах сайта: Логотип Название сайта Слоган Меню Шрифты, цвет текста и т. д.
Структура. Имеется общая структура внешнего вида сайтов. Здесь можно настроить расположение содержимого блоков в боковых колонках и других областях сайта. Имеется несколько стандартных расположений блоков:
Шапка сайта (заголовок страницы)
Меню сайта (навигация)
Левая/правая колонка (дополнительная информация для пользователя)
Содержимое (основной содержание страницы)
Подвал (подписи, контакты)
Содержимое. Здесь можно управлять заполнением сайта необходимым контентом (Информационное содержание сайта (тексты, графическая, звуковая информация и др.)). Под управлением понимается создание записей, их редактирование и удаление. При этом содержимое может быть в виде:
Статьи – документ, используемый для новостей, анонсов, сообщений. Зачастую являются основным содержимым блогов и выносятся на главную страницу.
Страница – документ, который используется для страниц с редко меняющейся информацией (например, это разделы «Контакты» или «О нас»).
Люди. В этом разделе производится управление пользователями сайта. Здесь задаются права доступа пользователей к тем или иным страницам на сайте или полномочиям. Например некоторые пользователи могут оставлять комментарии, а некоторые – нет. Т.е. создается набор ролей для всех пользователей, которые определяют возможность управления содержимым сайта.
Виды CMS:
Коробочные коммерческие CMS
Продукты, созданные коммерческими организациями для извлечения прибыли от продажи лицензии и/или технической поддержки. Эти программные продукты, отчуждаемы от разработчика, то есть позволяют самостоятельно разработать с их помощью сайт.
Open-source CMS
CMS с открытым кодом — это программное обеспечение, которое отвечает следующим условиям: программа может быть свободно использована с любой целью; доступность исходного текста программы; можно свободно распространять копии программы; программа может быть свободно улучшена, а улучшенная версия опубликована.
Индивидуальные (студийные)
CMS, разработку сайтов на которых может осуществлять только их разработчик.
Таблица 1. Популярные CMS.
Наименование CMS |
WordPress |
1С-Битрикс |
Joomla |
Drupal |
Тип лицензии |
GNU GPL 2+ |
Проприетарное программное обеспечение |
GNU GPL 2+ |
GNU GPL 2+ |
Номер релиза текущей версии |
5.7 |
20.0 |
3.9.25 |
9.1.5 |
Дата релиза текущей версии |
9 марта 2021 |
12 ноября 2019 |
2 марта 2021 |
4 марта 2021 |
Поддерживаемая БД |
MySQL MariaDB |
MSSQL, MySQL, Oracle |
MySQL SQL Server PostgreSQL |
MySQL PostgreSQL MariaDB Percona Server SQLite |
ОС |
Кроссплатформенность. |
Кроссплатформенность |
Кроссплатформенность |
Linux, Microsoft Windows, macOS UNIX |
Веб-сервер |
Apache Nginx |
Apache |
Apache Nginx Microsoft IIS |
Apache Nginx Lighttpd IIS |
Язык программирования |
PHP |
PHP |
PHP JavaScript |
PHP |
Преимущества и недостатки популярных CMS:
WordPress
Преимущества:
Официальная база плагинов и тем от сторонних разработчиков, которые помогут изменить стандартное визуальное оформление и расширить функциональные возможности.
SEO модуль, благодаря чему сайты на WP занимают высокие позиции в поисковой выдаче. Однако для оптимизации необходимо воспользоваться некоторыми плагинами.
Широкое сообщество пользователей позволит быстрее находить решения проблем во время эксплуатации. К тому же, именно благодаря этому, каждый день появляется всё больше плагинов и тем.
Открытый исходный код. Это позволит программистам выйти за рамки функционала, которые не может предоставить система или существующие плагины.
Недостатки:
Широкое сообщество пользователей и открытый исходный код повышают интерес к данной платформе со стороны злоумышленников, ведь для открытой системы проще найти уязвимости.
Снижение производительности из-за нерационального использования плагинов и тем.
1С-Битрикс
Преимущества:
Наличие SEO модуля, который поможет продвигать сайт в поисковой выдаче.
Высокий уровень безопасности.
Встроенный функционал для интернет-магазина.
Двусторонняя связь с 1C, обеспечивающая постоянный обмен данными.
Недостатки:
Коммерческая CMS, а значит придётся покупать редакцию.
Большинство дополнительных элементов и модулей платные.
Для создания сайта необходимо иметь навыки программирования.
Joomla
Преимущества:
Полностью бесплатное распространение.
Простой процесс установки.
Обширное комьюнити, которое разрабатывает плагины, модули и дизайны.
Широкий функционал системы.
Удобная админ-панель с большим набором функций.
Поддержка протоколов контроля доступа (OpenID, LDAP, Gmail.com).
Недостатки:
Плохая защита от постороннего вмешательства.
Поверхностная система.
Проблемы с индексацией сайтов.
Drupal
Преимущества:
Наличие так называемых хуков (hooks), которые позволяют избежать практически любых проблем в системе.
Модули CCK и VIEWS позволяют конструировать произвольные типы данных и их отображение.
Эта система известна своим модулем Taxonomy, который позволяет систематизировать контент по уровням, признакам и категориям.
Огромное количество модулей, которые позволят добавить сайту множество фичей, таких как пользовательские блоги, OpenID, форумы, профили и так далее, повышая функциональность.
Обширное комьюнити.
Недостатки:
Сложность в освоении.
Требовательность к ресурсам.
Работа с модулями. Модули используют возможности друг друга, и если вам необходимо воспользоваться возможностями одного, вероятно, что придется установить дополнительные.
Таблица 2. Популярные web-серверы.
Наименование |
Nginx |
Lighttpd |
Apache |
IIS |
Поддерживаемая ОС |
Unix-подобные, Windows |
Unix-подобные |
кроссплатформенность |
Windows NT |
Тип лицензии |
2-х пунктная BSD |
Модифицированная BSD |
Apache License 2.0 |
Microsoft EULA |
Поддерживаемые ЯП |
Go, Node. js, Perl, PHP, Python, Ruby, and Java Servlet Containers |
Они не поддерживают конкретные языки, но протоколы: CGI, HTTP, FastCGI, SCGI, AJP |
PHP, Python, Ruby, Perl, ASP, Tcl |
.NET-compliant languages (C#, C, C++), Perl, Java, VB |
Особенности |
Разрабатывался для испытывающих большую нагрузку серверов. Включает в себя почтовый прокси-сервер.
|
Необходимо объяснить как обрабатывать HTTP запросы и заголовки на определенном порту, так как здесь нет виртуальных хостов. |
Упор на надёжность и гибкость.
|
Является частью пакета IIS. Поддерживает .NET
|