ПЗ CMS. Инсталляция, настройка и конфигурирование cms на примере конкретной прикладной задачи вёрстки Webсайта
![]()
|
Постановка задачиИнсталляция, настройка и конфигурирование CMS на примере конкретной прикладной задачи вёрстки Web-сайта. Теоретическая частьCMS (от английского Content Management System) - система управления содержимым (контентом) - компьютерная программа или информационная система, которая используется для организации и обеспечения процесса по совместному созданию, управлению и редактированию содержимого сайта. Основной задачей такой системы является сбор и объединение в единое целое, на основе ролей и задач, различных источников информации. Эти источники могут быть доступны как внутри самой организации, так и вне её пределов. К тому же данная система обеспечивает возможность взаимодействия различных сотрудников, проектов и рабочих групп, с теми базами знаний и данных, которые были ранее созданы, в таком виде и таким способом, чтобы сделать процесс поиска и повторного использования максимально комфортным и привычным. В такой системе управления контентом определяется всё многообразие существующих данных: стандартные документы, музыка и звуки, видео, каталоги всевозможной информации и многое-многое другое. И именно для управления, хранения, обработки, просмотра и публикации таких данных различными группами пользователей и служат CMS. Отсюда, кстати, возникает и новый род профессиональной деятельности - контент менеджер, или проще говоря - редактор сайта. Основные функции CMS: ![]() ![]() ![]() ![]() В системе управления содержимым могут находиться самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные и так далее. Такая система часто используется для хранения, управления, пересмотра и публикации документации. Контроль версий является одним из основных её преимуществ, когда содержимое изменяется группой лиц. Если смотреть с точки зрения обычного заказчика, то разработка сайта на основе какой-либо CMS должна приносить следующие преимущества: В работе используется наиболее эффективный инструмент для решения конкретной задачи (в зависимости от вида сайта и требований к его функционалу подбирают оптимальную CMS); Использование CMS позволяет владельцу сайта самостоятельно создавать и удалять разделы сайта, редактировать различную информацию без привлечения стороннего специалиста — это одно из преимуществ над статическими сайтами; Работа сайта постоянно тестируется множеством пользователей, а найденные ошибки и уязвимости достаточно оперативно устраняются, при этом сайт работает на самых передовых и проверенных технических решениях; Временные затраты на разработку сайта существенно снижаются, так как разработчику не надо фиксировать своё внимание на чисто технических задачах: «как сделать ленту с новостями» или «как научить CMS искать товары в каталоге», а можно сосредоточиться на информационной и визуальной составляющих будущего сайта; В общем случае системы управления содержимым делятся на: ![]() ![]() В силу того, что ECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т. д.), термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML. Виды CMS: ![]() Системы управления содержимым, написанные внутри веб-студии и используемые внутри нее же для разработки собственных или клиентских сайтов. Могут не иметь собственного названия. Чаще всего содержат только тот функционал, который нужен в конкретном проекте, не нагружая сервера хостинга лишними надстройками, не используемыми в данном проекте. ![]() CMS, разработанные специализированными компаниями или веб-студиями для последующей массовой продажи конечным пользователям или другим веб-студиям, которые по каким-либо причинам не имеют собственной студийной CMS. Оплачиваются чаще всего каждая отдельная лицензия для каждого создаваемого сайта. Бывают исключения, например, одна лицензия на CMS от «1С-Битрикс» позволяет создать сразу 2 сайта, правда только с одной базой данных. Тиражные CMS похожи на швейцарский складной нож и содержат обычно обширный функционал, который, как показывает практика, даже на 50% обычно не используется владельцами подобных сайтов. Обычно содержат исчерпывающую документацию для разработчиков. Пример тиражных CMS: «1С-Битрикс», «UMI.CMS», «NetCat», «AMIRO.CMS». ![]() Системы управления, которые разрабатываются сообществами программистов, поддерживаются ими же и имеют открытый исходный код. Любой программист может взять бесплатную CMS и доработать ее по собственному усмотрению. Поскольку разработку ведет множество программистов с документацией, очень часто возникают проблемы, что повышает порог вхождения программиста в работу с данными CMS. Минусом подобных CMS является их массовость и, как следствие, общеизвестность всех «дыр» в безопасности, что часто приводит к заражению сайтов на Open Source CMS вирусами, что может грозить длительным падением позиций сайта в результатах выдачи поисковиков. Пример бесплатных CMS: «WordPress», «Drupal», «Joomla», «MODX», «Opencart», «Instant CMS», «TYPO 3». Существует множество готовых систем управления содержимым сайта, в том числе и бесплатных. Их можно разделить на три типа по способу работы: Генерациястраницпозапросу.Системы такого типа работают на основе связки «Модуль редактирования → База данных → Модуль представления». Модуль представления генерирует страницу с содержанием при запросе на него, на основе информации из базы данных. Информация в базе данных изменяется с помощью модуля редактирования. Страницы заново создаются сервером при каждом запросе, что, в свою очередь, создаёт дополнительную нагрузку на системные ресурсы. Нагрузка может быть многократно снижена при использовании средств кэширования, которые имеются в современных веб-серверах. Генерация страниц при редактировании. Системы этого типа служат для редактирования страниц, которые при внесении изменений в содержание сайта создают набор статических страниц. При таком способе в жертву приносится интерактивность между посетителем и содержимым сайта. Смешанный тип. Как понятно из названия, сочетает в себе преимущества первых двух. Может быть реализован путём кэширования — модуль представления генерирует страницу один раз, в дальнейшем она в несколько раз быстрее подгружается из кэша. Кэш может обновляться как автоматически, по истечении некоторого срока времени или при внесении изменений в определённые разделы сайта, так и вручную по команде администратора. Другой подход — сохранение определённых информационных блоков на этапе редактирования сайта и сборка страницы из этих блоков при запросе соответствующей страницы пользователем. Система управления — программа, предоставляющая инструменты для добавления, редактирования, удаления информации на сайте. Большинство современных CMS имеют модульную архитектуру, что позволяет администратору самому выбирать и настраивать те компоненты, которые ему необходимы. Типичные модули: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Сайты, организованные посредством системы управления контентом, основаны на следующих технологиях: веб-сервер, хранилище данных (зачастую СУБД, например, такие как MySQL или PostgreSQL, однако существуют и noSQL CMS), веб-приложение для обеспечения работы самой системы, визуальный (WYSIWYG) редактор страниц, файловый менеджер с веб-интерфейсом для управления файлами сайта, система управления правами пользователей и редакторов сайта. Существуют разнообразные системы управления сайтом, среди которых встречаются платные и бесплатные, построенные по разным технологиям. Каждый сайт имеет панель управления, которая является только частью всей программы, достаточной для управления сайтом. Наиболее распространены следующие технологические платформы, используемые в качестве основы веб-приложения, реализующего работу CMS: PHP, Perl, .NET. Существует термин контент-менеджер, обозначающий род профессиональной деятельности — редактор сайта или сотрудника, работающего с CMS. Большая часть современных систем управления содержимым реализуется в виде визуального (WYSIWYG) редактора — программы, которая создаёт HTML-код из специальной упрощённой разметки, позволяющей пользователю проще форматировать текст. Content Management Framework (CMF) — это каркас (фреймворк программной системы) для проектирования систем управления контентом. На их основе создаются системы управления содержимым (CMS), а также веб-приложения. Если основная задача универсальных CMS — простота создания сайта без вмешательства программиста, то есть — конструктор сайтов, то CMF — это конструктор CMS (в том числе узкоспециализированных) для программиста. Благодаря такому подходу сайт, созданный с помощью CMF, по сравнению с сайтом на базе CMS, может иметь более простую и безопасную в работе административную панель (в которой отсутствуют функции настройки сайта под любые функции) и быть менее требовательным к ресурсам системы (каждый модуль реализует именно те функции, которые необходимы в работе сайта). При наличии грамотно спроектированной CMF и готовых модулей, программисту остаётся только сборка этих модулей в единое пространство и оформление вывода в соответствии с пожеланиями клиента, то есть разработка сайта на основе CMF вполне сравнима по трудоёмкости с разработкой сайта на универсальной CMS. Сложности могут возникнуть, если программист-пользователь фреймворка столкнётся с программными ошибками в его реализации. Не будучи экспертом в архитектуре фреймворка, он может испытывать затруднение с её локализацией, не может быть уверен, сделал ли он ошибку сам, или столкнулся с ошибкой в CMF. Глубокие знания архитектуры фреймворка могут понадобиться и при его тонкой настройке, если программист желает получить максимальную производительность. Архитектура. Фреймворки веб-приложений обычно обеспечивают механизмы доступа к базе данных, шаблонизации и управление сессиями. Большинство современных CMF являются реализацией архитектуры Model-View-Controller. Веб-фреймворк обеспечивает бесшовную интеграцию всех трёх слоёв MVC архитектуры. Фреймворки скрывают от программиста детали подключения к базе данных и формирования веб страниц с помощью шаблонов-представлений, позволяя программисту сконцентрироваться на реализации бизнес-логики. Процесс создания приложения с использованием MVC-фреймворка заключается в написании классов контроллеров, моделей и представлений, каждый из которых является наследником базовых классов для компонентов каждого слоя. Многие веб-фреймворки обеспечивают полуавтоматическое создание прототипа веб - приложения, выполняющего основные (CRUD) операции с данными путём скаффолдинга. Важные характеристики фреймворка: Размер. При выборе CMF стоит обращать внимание на такие факторы, как размер фреймворка. Если фреймворк слишком велик и не имеет легко разделяемой модульной архитектуры, это может неоправданно утяжелить приложение. Компактность фреймворка может вступить в противоречие с широтой возможностей, которые он предоставляет. Производительность — другая важная на практике характеристика веб- фреймворка. Она может косвенно зависеть от размера, особенно для интерпретируемых языков вроде PHP. Следует оценивать производительность фреймворка в таких единицах, как количество обрабатываемых в секунду запросов. Граница между CMF и CMS: Многие современные системы управления содержимым построены вокруг MVC- паттерна. Такой фреймворк может быть специально написан для системы, примерами могут являться: Joomla! (начиная с версии 1.5), Bitrix (начиная с версии 6), MODxRevolution (начиная с версии 2.0), SilverStripe, Contao, Frog CMS/Wolf CMS ведётся постепенный перевод на такую архитектуру. Другие системы используют фреймворки, популярные сами по себе. Так, написанная на Python CMS Plone построена на основе Zope (и его расширения — CMF), коммерческая CMS ExpressionEngine использует свободный фреймворк CodeIgniter того же автора. CMS eZ publish основана на фреймворке eZ Components, изначально того же разработчика (сейчас передан Apache Foundation и переименован в Zeta Components). В последнее время появилась тенденция использовать в качестве базиса для построения системы управления содержанием Zend Framework: примерами могут служить вошедшие в финал Packt Open Source Awards — 2010 в категории «самые многообещающие CMS» Pimcore, и Tomato CMS, а также Concrete5, отмеченная в 2011 Open Source CMS Market Share Report, как самая быстрорастущая CMS. Выпущенная в конце 2014 года восьмая версия Drupal также построена вокруг Zend Framework. Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF, хотя провести чёткую границу между CMS и CMF порой сложно. Основным отличием является то что на CMS можно построить сайт не написав ни одной строчки кода. Такая готовая к использованию система управления контентом, как Drupal, одновременно считается и каркасом для построения таких систем, что определяется как возможностью расширения функционала за счёт пользовательских модулей, так и богатством механизмов и абстракций для управления контентом, предоставляемым этой системой. Основные функции CMS (системы управления контентом): Разработка контента. CMS осуществляет поддержку совместной работы авторов, редакторов, программистов и менеджеров по обновлению содержимого сайта и предоставлению конечным пользователям своевременной информации. Все компоненты сайта, включая шаблоны и наполнение, хранятся в определенных местах хранилища данных. Управление сайтом. На этом уровне происходит разработка самого сайта, предварительный просмотр и публикация подготовленного контента. Здесь разрабатывается внешний вид, подготавливаются шаблоны, распределяются роли пользователей и классификация необходимой информации. Обеспечение доступа пользователей (посетителей, администраторов, редакторов) к информации, содержащейся в базе данных сайта, через Интернет. Система предоставляет средства для динамического формирования Web-страниц в зависимости от вида конкретных пользователей. Каждый пользователь получает только ту информацию, которая соответствует его роли. Предоставляемые возможности CMS: Использование шаблонов отображения, автоматически применяемых к новому или существующему контенту. Простота редактирования контента благодаря визуальным редакторам. От пользователя не требуется знание языков программирования и разметки; Расширяемость за счет установки дополнительных модулей и плагинов; Визуализация содержимого, благодаря которой пользователь может увидеть создаваемый контент до отправки его на сайт (предварительный просмотр). Автоматическое обновление и следование веб стандартам; Управление документооборотом; Единая категоризация всех видов содержимого (таксономия). Управление пользователями с различным уровнем доступа Основные базовые понятия и термины, использующиеся в CMS для работы и функционирования: Оформление. В данном разделе происходит выбор темы визуальной структуры сайта. Основные настройки здесь – включение/отключение определенных элементов на страницах сайта: ![]() ![]() ![]() ![]() ![]() Структура. Имеется общая структура внешнего вида сайтов. Здесь можно настроить расположение содержимого блоков в боковых колонках и других областях сайта. Имеется несколько стандартных расположений блоков: ![]() ![]() ![]() ![]() ![]() Следует так же отметить, что блоки структуры так же могут делиться на блоки. Так, например, Содержимое может быть поделено на 3 части: заголовок (обычно заголовки новостей), содержимое (сама новость) и Подвал (авторы, даты и проч.). Содержимое. Здесь можно управлять заполнением сайта необходимым контентом (Информационное содержание сайта (тексты, графическая, звуковая информация и др.)). Под управлением понимается создание записей, их редактирование и удаление. При этом содержимое может быть в виде: Статьи – документ, используемый для новостей, анонсов, сообщений. Зачастую являются основным содержимым блогов и выносятся на главную страницу. Страница – документ, который используется для страниц с редко меняющейся информацией (например, это разделы «Контакты» или «О нас»). Люди. В этом разделе производится управление пользователями сайта. Здесь задаются права доступа пользователей к тем или иным страницам на сайте или полномочиям. Например, некоторые пользователи могут оставлять комментарии, а некоторые – нет. Т.е. создается набор ролей для всех пользователей, которые определяют возможность управления содержимым сайта. |