Bolt CMS

Существует огромное количество систем управлении контентом (CMS), написанных на языке php под разные задачи. Вот только многие из них были написаны для учебы и уже давно заброшены.

Есть и признанные «тузы» в мире веб-разработки: WordPress, Joomla!, Drupal, MODX и некоторые другие. У этих CMS большое количество последователей, расширений, статей по ним с описанием решением разнообразных проблем, «тусовок» на разных языках.

Я хочу познакомить с новичком на рынке CMS — Bolt.

Скрнишот административной панели BoltCMS
Скрнишот административной панели BoltCMS

Bolt CMS — это система управлением контента, которая стремится быть простой и понятной насколько возможно. И сохраняет большой потенциал по росту проектов.

Внутренности Bolt CMS

Технически Bolt написана на языке программирования php, что не является чем-то выдающимся. Однако она построена на основе микро-фреймворка Silex, который появился как упрощение большого промышленного фреймворка Symfony. Соответственно можно при разработке использовать компоненты Symfony и другие библиотеки.

Так же можно использовать и Composer – систему управления пакетами в php, использующую библиотеку curl.  Но эти все изыски для понимающих толк в программировании.

Шаблонизатор Twig, так что документации по нему в интернете много.

Увы, документации по движку даже на английском очень мало. Я переведу потом руководство пользователя и руководство разработчика с официального сайта. Одновременно я в статьях опишу тонкости, которые я раскопал самостоятельно при работе с системой и её шаблонизатором.

Требования к серверу

Требования к серверу стандартны для сегодняшнего дня

  1. Версия интерпретатора php 5.3.3 и выше
  2. Расширения SQLite для доступа к базам данных sqlite, или MySQL (PostgreSQL)
  3. Сервер Apache или NGIX с возможностью настройки ЧПУ (человеко-понятных адресов)

А для самого интерпретатора php требуется в настройках ресурсов:

  1. Минимум 32 Мбайт оперативной памяти;
  2. Расширение PDO для доступа к базе данных
  3. Расширение cUrl для обновлений
  4. Расширение GD для работы с графикой.

Тоже обычная конфигурация. В принципе, такие настройки даются на любом платном хостинге. Учитывая, что возмножно работать без базы данных MySQL на файловой базе SQLite, то и на многих (если не на всех) бесплатных хостингах сайт на Bolt CMS тоже прекрасно заведется.

Ну а для администрирования подойдет любой современный браузер: FireFox, Chrome, Opera, Safari. Даже Internet Explorer 9 и выше будет работать. Так же будет работать админка и в мобильных браузерах: iPad, Android.

По ресурсам. Наследие Symfony сказыавется — потребление памяти на фронтэнде до 12 метров, в бекэнде – до 25 метров. А вот генерация страниц 0,5 секунды на хостнге от Sprinthost.ru при первом обращении к странице и 0,26 секунды при повторных обращениях (работает кеш движка).

Тут он явно проигрывает MODX Evolution, однако выигрывает у  Drupal, WordPress с заметным отрывом. Так на проекте с WordPress у меня фронтэнд генерится за 0,9-1,2 секунды и съедает память до 35 метров на том же хостинге. В целом, все это укладывается в нормы нормального быстрого сайта. Учитывая, что основные тормоза делают скрипты и неоптимизированная графика, можно сказать, что движок быстрый.

Сайты, которые можно сделать на Bolt CMS

Система явно писалась для разработчиков и это видно. Накликать как в Joomla! с её всплывающими модальными окнами настройки не получится — обязательно нужно править конфигурационные файлы. Зато система очень гибкая и удобная для разработки.

Я определил для себя, что на текущий момент в ветке 1.6 можно делать небольшие проекты:

  1. landing page или одностраничкики (страницы захвата посетителей);
  2. Сайты-визитки (главная-услуги-о фирме-контакты-обратная связь);
  3. корпоративные сайты без работы с пользователями,
  4. всевозможные каталоги товаров/услуг;
  5. презентационные сайты;
  6. сайты-статейники (то есть разные статьи с разделами, тегами, таксономией);
  7. блог (с ограничениями по комментариям).

Что-то большее с работой пользователями сделать уже сложнее. Но при наличие навыков программирования возможно, хотя стоит взять специализированные движок.

Чего НЕ СТОИТ делать на этом движке однозначно:

  1. интернет-магазины;
  2. социальные сети типа одноклассников или вконтакте;
  3. мультиблогов с наполнением из фронтенда пользователями.

Типы страниц в Bolt CMS

«Взрослые» системы управления контентом обладают одной яркой особенностью – создавать дополнительные поля к страницам по желанию и использовать их потом в шаблоне. В WordPress это не так давно стали их использовать в самом движке, хотя уже давно расширения создают такие поля. Поэтому еще как-то слабо их используют. В Drupal  это называется CCK (content construction kit – конструктор контента) и именно от этого движка эта идея пошла в другие. В MODX это называется TV-параметры — параметры шаблона, который назначается странице.

Штука это удобная и позволяет очень легко в странице выносить данные по таким полям. Примером может служить страница описания товара: контент служит для описания, одно поле для цены, другое для артикула, третье для картинки-превьюшки, четвертое с помощью JSON фотогалерея, целая куча параметров — технические характеристики. Потом в шаблоне делается вывод со своим форматирование именно туда, куда нужно. И ни один безграмотный «наполнятель сайта» не сможет нарушить разметку. Кроме того, по таким полям очень удобно строить фильтры отбора для показа именно нужных лент товаров (статей/новостей).

Так вот в Bolt CMS эта возможность есть по умолчанию и заменяет собой большую часть плагинов в традиционных системах типа Joomla!. В настройках можно поправить типы полей под нужную задачу и теперь при создании материала просто заполнить форму, которая генерируется автоматически по конфигурационному файлу.

А при изменении типов контента нужно всего лишь зайти в настройках и оптимизировать базу – она автоматически изменится под новую конфигурацию. То есть добавятся или удалятся дополнительные поля в таблице материалов. Вот так просто можно управлять разнообразным контентом: фотогалереям, слайдерам, прайсам и так далее.

Плагины  Bolt CMS

Все плагины, которые есть, идут в комплекте. Они не активированы, так что для работы с ними нужно их прописать в конфигурационных файлах.

Увы, особого разнообразия в плагинах нет. Фактически, большая часть — это расширения шаблонизатора Twig для легкой вставки новых тегов в шаблон страниц. Эти теги вставляют через API разнообразные плюшки интернет-сервисов: лайки, публикации в социальные сети, подключение внешних комментариев DISQUS, google analitic.

Если вы занимаетесь веб-разработкой не первый день, то легко можете сделать это и руками. Так что подсмотрев реализацию, можно делать такие плагины под задачу. Нет плагинов связи с русскими сервисами типа вконтакте и одноклассников.

Плагины есть и более «концептуальные», но я с ними еще не разбирался. Для расширения самого движка есть плагины авторизации, редактирования с фронтенда администратором страниц, теги, редактор меню (непонятно зачем?), карты сайта, RSS-ленты.

В общем, для начала есть. А более сложные сайты нужно либо на других движках делать, либо придумывать обходные пути и писать свой код.

Шаблонизатор Twig  в Bolt CMS

При кажущейся простоте темы – создании шаблона для Bolt, это еще один скрытый краеугольный камень. То, что в других движках делается на php в виде сниппетов или обращениям к функциям ядра движка, в Bolt делается при помощи шаблонизатора Twig.

Как я понял после поверхностного ознакомления с документацией по шаблонизатору, в Twig можно делать свои расширения и с помощью их уже в синтаксисе задавать подпрограммы на php.

Именно так и делаются ленты, выводы страниц и некоторые другие особенности верстки.

Циклы, условия, переменные — это тоже стандартные возможности шаблонизатора.

Так что пока в обзоре Bolt на этом остановлюсь, а после перевода документации, выложу накопанные тонкости.

Заключение

Движок Bolt CMS мне понравился и я хочу на некоторых своих проектах применить его. Пока я ковыряю его на локальном сервере и на своей тестовой площадке. Возможности он предоставляет широкие и как раз под мои задачи. Ну а когда я соберу 3 полноценных разных сайта, я опишу и дополню свои впечатления.

Ссылка на основную публикацию