Table of Contents
1 Предисловие
Значительная часть сайтов работает на системе WordPress, о чём я рассказывал когда-то. Но встречаются ситуации, когда можно сэкономить время, используя CMS попроще. Уточняю: я знаю, что каждой задаче — свой инструмент. Свёрстанные на голом HTML, CSS и JavaScript сайты по-прежнему востребованы. Как и на самописных движках. Сейчас речь о тех задачах, когда проще всего взять готовую систему и натянуть на неё шаблон сайта.
Часто обновляющийся список цмсок я нашёл на Гитхабе: https://github.com/postlight/awesome-cms. Написаны они на самых разных языках: .NET, Java, JavaScript, PHP, Python и Ruby. Беглый осмотр показал, что подавляющее большинство систем развиваются, растут в плане функциональности и количества пользователей. Так как я имею дело с сайтами, написанными на PHP, отобрал две самых интересных, на мой взгляд, системы: Bolt и Grav.
2 Bolt
Домашняя страница: https://bolt.cm/
CMS Bolt отлично подойдёт для сайтов, чьё содержимое часто меняться не будет. Например, каталога музея:
При сравнении с WordPress преимущества Bolt очевидны:
- Низкие требования к хостингу. Главное — поддержка PHP 5.5.9 или выше. В качестве сервера баз данных может использоваться MySQL или PostgreSQL, но это не обязательно — по умолчанию база данных хранится в файле формата SQLite.
- Гибкая система таксономий (рубрикаций). Помимо категорий и меток можно сделать свои рубрики, количество практически не ограничено. Идеально подойдёт для создания сайта-каталога с какой-нибудь хитрой системой рубрикаций.
- Для шаблонов используется обработчик Twig — меньше возможностей создать уязвимую ко взлому тему оформления.
Есть каталог расширений, который понемногу наполняется. С его помощью можно добавить карту сайта, формы обратной связи. Да, Bolt не так функционален «из коробки», как WP. Можно создать страницы, новости с рубрикацией, какой-нибудь каталог и, в общем-то, это всё. Всё остальное придётся добавлять расширениями или писать самому. Поэтому порог входа выше по сравнению с WordPress. Это не недостаток, скорее повод для разработчика развиваться дальше. Благодаря этому сайты, использующие Bolt, будут работать быстро.
Что меня поразило, так это уровень документации. Она не только подробна, но и описывает возможности, которые появятся в будущих версиях!
Не обошлось без недостатков. На мой взгляд, разработчики слишком легкомысленно отнеслись к редактору страниц/новостей. Например, по умолчанию отключили кнопку добавления изображений. Урезанный донельзя CKEditor — не самое лучшее решение.
Фрилансерам, которые делают сайты «под ключ», придётся переделать эту часть Bolt. Неподготовленный пользователь (заказчик), залезший в админку подредактировать пару страниц, может порушить всю вёрстку. Дело в том, что CKEditor чересчур бережно относится к форматированию текста, преобразуя любые шрифтовые изыски в HTML-теги. Так как заполнение сайта часто происходит с помощью копирования готового текста из MS Word, на сайт перенесётся всё форматирование, из-за чего внешний вид страницы станет непотребным.
В остальном это замечательная CMS с хорошей документацией и более-менее живым сообществом.
3 GRAV
Домашняя страница: https://getgrav.org/
Grav — это flat-file CMS, т.е. на основе файлов. По сравнению с Bolt уровень входа выше, но и возможностей больше.
Особенности:
- Предельно низкие требования к хостингу. Никаких баз данных — всё на файлах. Желателен PHP 7, хотя должен завестись и на 5.5.9.
- Можно обойтись без админки (это такой же плагин, как остальные, расширяющие возможности Grav), просто создавая файлы с определённым содержимым, которые ядро сайта обработает и представит как готовые страницы.
- Twig используется не только при создании шаблонов, но и для содержимого страниц. Таким образом легко создать, например, карту сайта.
- Хороший набор готовых плагинов — практически все полезные, откровенного хлама нет.
- Доступны готовые заготовки («skeletons»). Каждый включает в себя шаблон оформления и плагины, настроенные для удобного создания разных типов сайтов — блогов, портфолио и так далее. Хотя можно и вручную собрать всё необходимое.
- Отличная интеграция с Gantry Framework. Это такой движок шаблонов, работающий на WordPress, Joomla и Grav. Изучив Gantry, можно верстать шаблоны оформления, используя их с минимальными изменениями сразу на трех CMS.
- Поддержка различных способов кэширования страниц, благодаря чему сайт будет открываться практически мгновенно.
- Отличная поддержка мультиязычности: один сайт может содержать версии на разном языке.
Страницы в Grav — это файлы с расширением .md (формат YAML), содержащие в себе конфигурацию и текст страницы. Оформление задаётся не HTML-тегами, а разметкой Markdown:
Да, у этой CMS та же проблема, что и у Bolt — неудобный текстовый редактор. Вряд ли заказчик сайта обрадуется, узнав, что для редактирования страниц ему потребуется заучивать маркдаун. Хотя сам по себе синтаксис неплох, давно подумываю подключить его в своем блоге, он требует определённых знаний. Поэтому Grav подходит либо для сайтов с нечасто обновляющимся содержимым, либо с полным сопровождением (наполнять будет исполнитель, не заказчик).
Ещё одна ложка дёгтя — документация. На мой взгляд, при всех достоинствах Grav — легкой установке, мультиязычности, скорости работы — на пути к популярности стоит ужаснейшее описание того, как работать с возможностями CMS. Казалось бы, если система управления контентом основана на файлах, то в доках обязательно должно быть указание, где и какие файлы должны лежать. Но в примерах есть только намёки, прямых и чётких указаний нет. При изучении руководства на официальном сайте learn.getgrav.org у меня было чувство, что вот-вот откроется третий глаз и я достигну просветления, но в итоге пришлось ковыряться в исходниках и методом тыка выяснять, какая структура страниц нужна для работы раздела-блога.
То же самое с движком шаблонов Gantry. Очень вовремя вышла статья «Переосмысление разметки. Первые шаги с Gantry 5», очень помогла. Другой русскоязычной документации (пока) не существует. Англоязычная есть, но она словно написана авторами руководства к Grav. К счастью, Gantry не обязателен, можно использовать Bootstrap, Foundation или что-то своё.
Дополнение от 7.12.2019: в комментариях справедливо указали, что документация у Grav стала нормальной, а количество плагинов значительно возросло. Поэтому обстоятельства изменились. Если ваша цель — создать сайт быстро, воспользовавшись готовыми решениями, то Grav — сильная замена Вордпрессу.
4 Совет
Если хотите разобраться, какой должна быть хорошая CMS, изучите Bolt. Сделайте хотя бы простой лендинг. Если захотите расширять функционал, знайте: CMS написана с использованием фреймворка Silex и компонентов Symfony. Полученный опыт пригодится не только в проектах, связанных с Bolt — написание решений, пускай даже «велосипедных», позволит расти вам как разработчику.
Grav отлично подойдёт работающим в команде благодаря архитектуре, позволяющей разобрать систему на независимые части, дорабатываемые разными людьми. Пожалуй, это одна из наиболее «модульных» CMS, благодаря чему на её основе возможно строить довольно нестандартные проекты. Например, делать мгновенно открывающийся лендинг без админки, чтобы после изредка менять текст на нём по просьбе заказчика. Полноценные сайты — с админкой, управлением пользователей и прочими атрибутами «серьёзных» проектов — разработать также можно, и даже быстрее, чем с помощью Bolt. Если для последнего приходится пилить собственные решения, то для Grav силами сообщества написано более трёхсот плагинов, помогающих сэкономить время при разработке.