Что нового в Bolt CMS 2.0

После версии Bolt CMS 1.6.12 вышла версия 2.0. И это не просто сменилась цифирка, а реально были сделаны большие изменения в системе.

Административный интерфейс

Новая тема, построенная на Bootstrap 3, была переработана полностью, стала более быстра и отзывчива, то есть теперь можно администрировать сайт на разных устройствах с разными разрешениями экрана.

Административная панель Bolt 2.0
Административная панель Bolt 2.0

 

Новая навигация позволяет быстрее работать, а новый поиск делает работу еще более простой и удобной:

68747470733a2f2f7777772e64726f70626f782e636f6d2f732f7762776e6c367a32347a306f7479372f53637265656e73686f74253230323031342d31302d323725323031342e30352e33382e706e673f646c3d31

 

Вкладки групп полей

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

В файле настроек групп контента contenttypes.yml вы можете задать группу для каждого поля. Вот пример такого файла:

pages: 
groups: ["content", "media"]
    fields:
        title:
            type: text
            group: content
        slug:
            type: slug
            uses: title
            group: content        
        body:
            type: html
            group: content
        feature:
            type: image
            group: media
        gallery:
            type: imagelist
            group: media

А вот что вы получите на странице редактирования

fe4e7980-2454-11e4-82f8-69339b4b9d21

Улучшенный модульный JavaScript

Разработчики системы использовали для сборки Grunt, так что теперь вместо большого и монструозного bolt.js вся функциональность разбита по маленьким модулям.

Мультизагрузка изображений

Маленькая, но важная новая возможность  загрузки сразу несколько изображений позволит очень сильно сократить время на создании нового материала

Новые языки

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

Юзабилити

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

Расширения Bolt CMS

Другое главная особенность Bolt CMS 2.0 — это репозитарий расширений.  Разработчики используют систему пакетов Composer для более гибкой разработки на Bolt CMS. Теперь можно легко создать и распространять пакеты. На сайте http://extensions.bolt.cm находится уже более 50 пакетов, которые могут быть применены при разработке сайта. И количество пакетов будет только увеличиваться.

Старые расширения  ветки 1.6

Если вы использовали в релизе 1.x включенные с дистрибутив расширения, то все 28 расширения были портированы на новую ветку 2.0  и доступны для установки.

 

Гибкая установка

Раньше было возможно только простая установка через обычное скачивание архива системы и далее через FTP заливка и настройка сайта. Пользователи хотят устанавливать Bolt CMS и через другие возможности. Поэтому система развертывания претерпела изменпния

Установите болт в качестве пакета Composer

Теперь есть возможно в существующий проект включить через Composer пакет bolt/bolt2.0.

Если вы хотите, то можете воспользоваться некоторыми дополнительными скриптами, которые помогут установить в нужное место. Более подробные инструкции здесь: https://github.com/bolt/bolt-docs/blob/master/source/installation-advanced.md#installing-bolt-as-a-composer-package

Начиная новый проект с помощью Composer

Теперь можно установить Bolt CMS 2.0 при помощи командной строки и Compser. Для этого просто в командной строке наберите (поправив имя проекта):

composer create-project bolt/composer-install <MYPROJECT> —prefer-dist

и composer  сам скачает и установит последний дистрибутив Bolt CMS

Присоединение Bolt CMS к существующему проекту

Много работы было сделано, чтобы BoltCMS мог работать в качестве автономного HTTPKernelInterface, не вмешиваясь в любой глобального пространства имен или констант. Так что, если вы используете StackPHP (или аналогичный) вы можете установить болт на URL префикс так просто, как это:

$map = [
		"/another" =&gt; new AnotherApplication(),
		"/blog" =&gt; new BoltApplication(['resources'=&gt;new BoltConfigurationComposer(__DIR__)])
	];
$app = (new StackBuilder())
    -&gt;push('StackUrlMap', $map)
    -&gt;resolve($app);
Stackrun($app);

Это означает, что вы можете, например, использовать Bolt CMS управлять одним определенную часть более широкого набора приложений.

Настройка каталогов

Для улучшения защиты сайта — это убрать из каталогов обще пользования файлы движка. Это наиболее частый запрос пользователей. Но разработчики хотят сделать Bolt CMS простым для пользователей разной квалификации, размещающих свой сайта на shared-хостингах.

Bolt CMS 2.0 поставляется с новым модулем конфигурации, что позволяет больший контроль над размещением проекта. Например, вот как вы загружаете Bolt CMS 2 на сервер, где есть только доступ в web-интерфейс в папку public, а весь код находится в папкух выше:

&lt;?php
// public/index.php
require_once "../vendor/autoload.php";
$configuration = new BoltConfigurationStandard(dirname(__DIR__));
$configuration-&gt;setPath("web", "public");
$configuration-&gt;setPath("files", "public/files");
$configuration-&gt;setPath("themebase", "public/theme");
$configuration-&gt;verify();
$app = new BoltApplication(array('resources'=&gt;$configuration));
$app-&gt;initialize();
$app-&gt;run();

Теперь вы можете сами сконфигурировать корневой каталог, пути для кеша, файлов и так далее.

Качество код

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

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

Шаблон административной панели

Целью переработки шаблона панели управления было в разделении большого шаблона на маленькие блоки и воспользоваться механизмом наследования шаблонизатора Twig. Это привело к разделению 41 шаблона на 110 более мелких блоков, которые упростились и позволяют переопределить более мелкие детали системы

PSR-4 стандарт кода

Мы также воспользовались возможностью, чтобы обновить код Bolt CMS, чтобы перейти от стандарта кодирования php PSR-0 до PSR-4, которая упростила и организовала код лучше.

Переводы: капитальный ремонт

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

panel:
latest-activity:
    button:
        more: "mehr Aktivit?ten"
    by: "von"
    headline: "Letzte Aktivit?ten"
    logged-in: "angemeldet"
    logged-out: "abgemeldet"
    saved: "Gespeichert"
    unknown: "unbekannt"
user-actions:
    button:

Скоро переключения языков на каждого пользователя

Эта новая система является важным шагом в направлении обеспечения переключение языков в интерфейсе администратора для каждого пользователя, а не для каждого сайта.

Гибкость файловой системы

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

  1. FTP
  2. Sftp
  3. Dropbox
  4. Amazon S3
  5. WebDAV

Это означает, с небольшими изменениями конфигурации вы можете выбрать, где хранить все ваши файлы на Dropbox, или в облаке Amazon S3 вместо этого.

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

Настройка загрузки для разных типов страниц

Еще одна полезная новая функция: вы можете задать различные каталоги загрузки на каждого типа страницы с помощью простой конфигурации. Например:

feature:
    type: image
    upload: uploads/features
gallery:
    type: imagelist
    upload: uploads/gallery

Другие изменения

Новая библиотека с миниатюрами

Мы решили по разным причинам, что предыдущая библиотека Timthumb не очень хорошо подходит для Bolt CMS, нам нужно что-то, что может монтировать на существующий Silex App, а также быть гораздо более гибкой для разработчиков. Так Bolt CMS 2.0 поставляется с новым пакетом bolt/thumbs, которая функционально совместима со старой системы, но предлагает следующие усовершенствования.

Пути могут быть настроены путем расширения или перезаписи $app[‘thumbnails.paths’].

Там же четко определены ResizeInterface это означает, что при написании расширений можно легко написать внести изменения.

Улучшенная гибкость типов полей

Это одно улучшение, которое предназначено, чтобы сделать жизнь проще для разработчиков расширений. Доступные типы полей (например, HTML, текст, число) теперь можно управлять с помощью класса FieldManager и все соответствуют новой FieldInterface. Это означает, что добавление нового поля доступных опций так же просто, как создание класса, который соответствует интерфейсу и добавление его менеджеру. В качестве примера, насколько просто это сейчас, смотрите в документации по адресу: https://docs.bolt.cm/v20/extensions-customfields

Совместимость с Windows

Из-за файловой системы Windows могли вызываться ошибки. Сейчас используется библиотека Pathogen для генерации пути. Это позволяет в ядре и расширениях писать более простой код.

PostgreSQL Совместимость

Были несколько серьезных ошибок, которые помешали 1.x версии Bolt CMS работает плавно на системах PostgreSQL, Bolt CMS 2.0 включает в себя исправления ошибок для этих случаев и полностью протестирован на PostgreSQL.

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