Что нового в Bolt CMS 2.0. Bolt cms на русском


Настройка Bolt CMS | Jean179

Обычно начинают с установки любой новой CMS. Я отойду от общепризнанной практики из-за того, что если не внести имения в конфигурационные файлы, то установлен будет он слегка не так, как хотелось бы и придется делать некоторые вещи повторно.

Итак, приступим.

Структура папок Bolt CMS

Для начала рассмотрим распакованный дистрибутив последней версии Bolt CMS. В корне проект находится следующие папка:

  1. App – именно здесь находится ядро Bolt CMS и все настройки, кеш, логи и так далее;
  2. Files – здесь будут лежат файлы, которые вы загрузите для страниц вашего сайта;
  3. Theme – здесь находятся темы оформления сайта, которые можно поменять ;
  4. Vendor – системные библиотеки, которые при помощи composer загружаются, конфигурируются и необходимы для работы ядра

Если в папку vendor руками лезть не стоит, то в других папках стоит посмотреть все файлы стоит очень внимательно.

Темы я затрону в одной из будущих статей, там много интересного. Но сегодня я пропущу этот каталог. Каталог files я тоже пропущу, я подробно описал как загружать и использовать файлы в статьях в руководстве пользователя.

А вот к папке app покопаемся вдоволь.

Как легко догадаться, сегодня я буду ковырять настройки в папку config.

Как настраивается Bolt CMS

По умолчанию в папке app/config лежат файлы с расширением *.dist. Эти файлы с настройками по умолчанию всех аспектов работы движка. Их 6 штук. Когда при первом запуске инсталятора скрипт доходит до настроек, то все файлы копируются с теми же названиями и им присаивается расширение yml – именно отсюда и берутся настройки.

Когда первый раз запускается инсталлятор, в файле database.dist по умолчанию прописывается работа с базой SQLite3, а сама база находится в папку app/database. Очень удобно для хостинга без поддержки MySQL и резервное копирование заключается в простой архивации сайта и скачивание себе на локальную машину. Учитывая, что Bolt CMS не предназначен для сайтов с высокой посещаемости и в нем нет плагинов комментариев, то это будет хорошим решением. Но если вам нужно чуть больше производительности, то лучше настроить систему на работу с базами MySQL или даже PostgreSQL.

Файлы с расширением yml – это обычные текстовые файлы, в которых легко разберется любой человек. В них приведены комментарии (правда, на английском языке), есть примеры и по аналогии можно добиться многого от движка.

Config.yml – это основной файл конфигурации именно движка: подключение к базе, название сайта, его адрес, локализация, вывод ошибок и так далее.

Contenttypes.yml – это файл, который конфигурирует типы страниц и их поля в административной панели. Это второй по важности конфигурационный файл и именно его вы будете править чаще всего.

Menu.yml – это файл меню, с помощью которого можно определять разные меню, вложенность элементов, адрес ссылок и название пунктов. Есть и плагин, который помогает визуально редактировать этот файл, но на мой вкус легче руками самостоятельно отредактировать его в редакторе.

Permission.yml – это файл с настройками прав пользователей. Его редактирование нужно будет на последнем этапе разработки сайта.

Routing.yml – это файл с уникальными настроками роутинга. Роутинг – это связывание адреса страницы с конкртеным действием движка. То есть можно делать какие-то тонкие настройки для плагинов и модулей.

Taxonomy.yml – это настройки таксономии. Таксономия – это способ иерархической организации страниц сайта. Проще говоря, это категории и подкатегории каталога статей, теги и так далее. Очень гибко можно связать с типами контента и таким образом делать каталоги с очень разветвленной структурой.

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

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

Так что смотрите, читайте, переводите. Ну а в следующей статье я рассмотрю очень интересный вопрос – типы контента, какие поля  есть и как добиться вывода их в админке.

jean179.ru

Типы контента, SEO, вкладки и шаблоны в Bolt CMS

Пока народ отдыхает на Рождество, я между делом разбираюсь в новой версии Bolt CMS. Вот некоторые интересные нововведения я хотел бы показать.

SEO и CMS

Меня больше всего бесит в классических CMS забитые поля при создании и редактировании статьи. Хочешь что-то добавить для SEO и упираешь в стенку — НИЗЗЗЗЯ! И ищешь плагины, которые бы подправили бы вывод на страницу всего-то описания страницы и ключевых слов. Да, я знаю, что ключевые слова не принимаются во внимание поисковыми системами, да, я знаю, что они часто генерируются из тизера (короткого описания) страницы. Но я предпочитаю делать все руками и до символа управлять выводом страницы. Да и ключевики умерли в качестве способа повлиять на выдачу в поисковой системе. А вот в качестве дополнительного описания страницы для микроразметки они все ещё в ходу. Так что совсем не лишнее иметь возможность настраивать все по своему вкусу.

Bolt CMS явно относится к конструкторам контента CMF, а не просто к CMS — системамуправления контентом. Вот я и сегодня исследовал именно эту возможность.

Если поглядеть в настройках app\config\contenttypes.yml, то там явно заложены все поля на все типы контента. Вот только они как средняя температура по больнице и подходят не для всех. В шаблонах, идущих с дистрибутивом Bolt CMS, прописано использование именно этих полей.

А я захотел сделать другую разметку в учебных и практических целях.

Типы контента

Любая страница сайта на Bolt CMS относится к какому-нибудь типу. И типы эти равноправны. Сама идея очень похожа на Drupal.

У такого подхода есть очень много плюсов — страницы отображаются в табличной форме и легко осуществлять навигацию по материалам. И не важно сколько таких страниц/материалов на сайте, поскольку движок выберет и покажет только нужные, в отличие от MODX, где ресурсы хранятся в дереве. И когда ресурсов в дереве много, админка начинает притормаживать.

В такой реализации Bolt CMS есть большой косяк с ЧПУ — при назначении главной странице сайта одной из страниц, произойдет дублирование контента по адресам http://site.ru/ иhttp://site.ru/page/slug-page. Решить эту проблему можно либо закрыть дубль в файле robots.txt, либо настроить редирект 301 в .htaccess, либо в самом движке в роутинге, куда мои шаловливые руки еще не дошли.

Для экспериментов я залез в настройки contenttypes.yml и поправил тип Pages.

Опять же, маленькое уточнение: pages и page используется для генерации URI страницы и если забить русскими буквами (обязательно сохраните файл в UTF-8), то в админке будут отображаться русское название раздела «Контент», но вот при генерации адреса будет что-то типа /stranica/washa-stranica, что на мой эстетический вкус не слишком хорошо смотрится, поэтому я не стал менять эти значения.

Вот получившийся тип страниц

pages: name: Pages singular_name: page groups: ["content", "seo"] fields: title: type: text class: large group: content slug: type: slug uses: title image: type: image teaser: type: html height: 150px body: type: html height: 300px template: type: templateselect filter: '*.twig' description: type: textarea postfix: "

Постараться кратко описать страницу не более 180 символов;

;» group: seo keywords: type: text class: large robot: type: checkbox label: «Исключить из индексации?» taxonomy: [ chapters ] recordsperpage: 100

Теперь маленькие пояснения

  1. В начале я определяю вкладки, куда я помещу страницы: content и seo. Обратите внимание, что группы заданы только два раза. Движок все следующие поля без указания ставит в вышеуказанную группу.
  2. Для SEO параметров страницы я завел 3 новых поля: description, keywords и robots.
  3. Robots – это поле типа чекбокс для отключения индексирования страницы путем добавления в раздел head страницы метатегов

Теперь остается лишь сохранить файл, зайти в админке в Настройки – Проверить базу данных и обновить там базу, которая Bolt CMS автоматом приведет в соответствии с отредактированными настройками. Вам не придется делать миграции, лезть в базу руками и делать тому подобные глупости. Это радует.

Вкладки редактора контента

Заходим теперь в редактирования контента типа Pages и видим, что вкладок стало 4 и поля разнесены по вкладкам. Что я и добивался. Так что теперь не нужно заполнять огромную портянку при редактировании страницы а-ля WordPress.

 

Это как раз новая фича Bolt CMS.

Добавление новых полей в шаблон Bolt CMS

Теперь было интересно добавить новые поля в шаблон.

Шаблон Bolt CMS состоит из файлов с расширением twig, которые движок уже превращает в страницы. Код php в нем вырезается, так что не надейтесь использовать программирование чего-нибудь на php. Самого шаблонизатора twig хватает для условий, вывода и чуток сверху. Так что наговнокодить в шаблоне у вас не получится J.

Основных шаблонов несколько, они имеют говорящие (на английском назнвания) и они начинаются с буквы. Есть еще вспомогательные шаблоны (в терминологии MODX – чанки), которые имеют начинаются с знака нижнего подчеркивания. Вот как раз над таким шаблоном _header.twig я и буду экспериментировать.

Чтобы много не писать, я выведу файл, доступный для скачивания. А вот некоторые кусочки я прокомментирую.

Увы, я пока не въехал в то, как выводятся данные со страниц, я только «обезьянничаю»  и сдираю готовое, модифицируя под свои нужды.

{% if record.title is defined %}{{ record.title|striptags }} | {% endif %}{{ app.config.get('general/sitename') }} {% if record.title is not defined and app.config.get('general/payoff') %} | {{ app.config.get('general/payoff') }}{% endif %}

Тут просто, все готовое. Если у записи есть поле title и оно заполнено, то выводится оно, очищенное от тегов, затем пробел и вертикальная черта и название сайта. Иначе будет выводиться что-то. Но  не заполнить заголовок система не даст, так что тут просто перестраховка.

<meta name="description" content="">

Тут я вывожу в качестве описания из поля тизера, очищенного от тегов. Можно использовать и поле description, его я использую далее.

Вот первая микроразметка:

Как видите, здесь по аналогии я вывожу название сайта, для заголовка карточки название страницы если оно есть, описание страницы, урл страницы и картинку если она есть.

Есть косяк с УРЛ – будет выводиться именно настоящей урл страницы и на главной будет ссылка на именно основной урл, что очень не хорошо. Тут нужно будет еще подумать и включить проверку на главную страницы, как это сделать я пока не разобрался.

Вот вторая микроразметка для twitter:

Здесь все по аналогии и комментировать уже особо нечего.

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

{% if record.robot == "1" %}{% endif %}

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

Все остальное — это моя попытка сходу адаптировать шаблон моего тестового сайта на MODX Revolution  на новую для меня систему Bolt CMS.

Заключение

Сходу мне не слишком много удалось продвинуться без перевода документации. Но мои эксперименты будут полезны тому, кто изучает эту систему и позволит ему сэкономить чуть-чуть времени и что называется «въехать» в новую систему. Так что с такими мыслями я выкладываю эту статью.

jean179.ru

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

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

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

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

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

 

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

 

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

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

В файле настроек групп контента 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

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

Улучшенный модульный 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.

jean179.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта