Статьи

Представляем OctoberCMS — CMS на основе Laravel

October CMS — это легковесная система управления контентом, основанная на Laravel, которая призвана снова упростить ваш процесс веб-разработки. Он имеет очень простую и быструю кривую обучения, гарантируя, что вы будете в курсе событий и в кратчайшие сроки. Он масштабируется и расширяется с помощью системы плагинов, легко поддерживается с помощью файловой системы и позволяет без труда создавать административные внутренние интерфейсы. Прежде чем мы углубимся в эту многообещающую CMS, давайте немного рассмотрим основы.

октябрь

Построен на Laravel PHP Framework

Фреймворк Laravel PHP легок, крепок и элегантен. По их мнению, это фреймворк, созданный для творческого пользователя, который превращает повседневные задачи в простые и приятные. Философии как Laravel, так и October CMS очень хорошо совпадают, и нет ничего удивительного в том, что октябрь прошел с этим типом фреймворка. Комбинация обеспечивает идеальное сочетание простоты, скорости, элегантности и ремесленного программирования. Давайте теперь посмотрим на настройку нашего первого октябрьского проекта CMS.

Начните в кратчайшие сроки

Октябрь делает установку бризом для нас. Следующие шаги помогут вам в разработке:

  1. Либо клонируйте их репозиторий на GitHub, либо загрузите установщик . Рекомендуемый способ — загрузить установщик, так как он прост и быстр и позволяет вам выполнять некоторые настройки прямо в браузере с помощью простого пошагового интерфейса.
  2. Извлеките файлы в нужный локальный каталог и настройте локальный сервер в соответствии с локальным путем.
  3. Настройте новую базу данных и запишите имя базы данных.
  4. Перейдите к файлу install.php в вашем браузере, следуйте инструкциям на экране и введите переменные конфигурации.

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

Как все это работает — темы и шаблоны

Каталог тем является основой для конечного вывода любой новой установки CMS в октябре. Этот каталог содержит все подкаталоги и файлы, необходимые для отметки CMS. По умолчанию October CMS запускает демонстрационную тему. Создать свой собственный так же просто, как создать новый каталог (назовите его как угодно), файл конфигурации темы с именем theme.yaml в корне этого каталога и каталог страниц с файлом подкачки в нем. А пока давайте рассмотрим демонстрационную тему, чтобы понять внутреннюю работу.

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

 themes/ demo/ assets/ css/ images/ javascript/ ... content/ layouts/ pages/ partials/ theme.yaml 

Файлы шаблонов имеют простую структуру и используют разметку Twig . Twig — это движок шаблонов PHP, улучшающий и ускоряющий шаблоны и сводящий общие подробные задачи к простым фрагментам кода. Есть три части любой страницы, макета и частичных файлов шаблона:

  1. конфигурация
  2. Код PHP
  3. Разметка ветки

Раздел конфигурации структурирован как файл php.ini и помечен как завершенный двумя символами = , освобождая место для раздела PHP. Раздел PHP является необязательным для любого файла шаблона, а также помечен как завершенный, введя еще два символа = . Наконец, разметка Twig содержит фактическое содержимое файла шаблона. Вот как может выглядеть файл шаблона, взятый с их сайта:

 url = "/blog" layout = "default" == function onStart() { $this['posts'] = ...; } == <h3>Blog archive</h3> {% for post in posts %} <h4>{{ post.title }}</h4> {{ post.content }} {% endfor %} 

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

страницы

Файлы страниц имеют понятное название — они описывают страницы вашего сайта. Они принимают три параметра в разделе конфигурации:

  1. urlurl страницы (обязательно)
  2. titletitle страницы (обязательно)
  3. layoutlayout страницы, который может указывать на файл макета (необязательно)
  4. description — описание страницы в бэкэнде (необязательно)

URL страницы может принимать параметры в зависимости от рассматриваемой страницы. 404 и страницы ошибок также могут быть указаны. Вот простой пример макета страницы:

 url = "/" title = "Welcome" description = "The home page." == <h1>Welcome Home</h1> 

Вы можете прочитать больше на страницах здесь .

Partials

Частицы также имеют довольно понятное имя — они относятся к файлам, которые содержат частичные объемы кода. Частичные файлы являются мощными, потому что их можно вызывать и повторно использовать на страницах, в макетах или других частичных файлах. Вы можете использовать тег {% partial %} для вызова частичного из другого файла. Частичные поддерживают только один параметр конфигурации:

  1. description — частичное описание для серверной части (необязательно)

Вот базовый пример частичного (правая боковая панель) вызова другого частичного (последние сообщения):

 description = "Right sidebar." == <div class="sidebar"> <aside> {% partial "recent-posts" %} </aside> </div> в description = "Right sidebar." == <div class="sidebar"> <aside> {% partial "recent-posts" %} </aside> </div> в description = "Right sidebar." == <div class="sidebar"> <aside> {% partial "recent-posts" %} </aside> </div> 

Вы можете прочитать о частичках здесь .

Макеты

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

  1. name — имя файла макета для серверной части (необязательно)
  2. descriptiondescription файла макета для серверной части (необязательно)

Страница макета может выглядеть примерно так:

 name = "Default" description = "The default layout for our template" == <!doctype html> <html> <body> {% page %} </body> </html> 

Давайте предположим, что мы назвали этот файл макета default.htm и поместили его в наш каталог layouts . Страница может затем вызвать этот макет следующим образом:

 title = "Welcome" url = "/" layout = "default" description = "Welcome home!" == <h2>Welcome Home!</h2> <p>...</p> 

Довольно аккуратно! Подробнее о макетах здесь .

Блоки контента

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

  1. .htm (для разметки HTML)
  2. .txt (для простого текста)
  3. .md (для уценки) <- классно

Вы можете вызвать файл содержимого, используя разметку веток, запустив тег {% content %} . Вот пример страницы, отображающей пару блоков контента:

 <div class="sidebar"> <aside class="recent-posts"> {% content "einstein-quote.htm" %} </aside> <aside class="newsletter"> {% content "newsletter.htm" %} </aside> </div> в <div class="sidebar"> <aside class="recent-posts"> {% content "einstein-quote.htm" %} </aside> <aside class="newsletter"> {% content "newsletter.htm" %} </aside> </div> в <div class="sidebar"> <aside class="recent-posts"> {% content "einstein-quote.htm" %} </aside> <aside class="newsletter"> {% content "newsletter.htm" %} </aside> </div> 

Проверьте больше о файлах содержания здесь .

Модуль AJAX

Октябрь CMS имеет очень надежную встроенную среду AJAX, позволяющую вам делать запросы AJAX и очень легко взаимодействовать с рядом атрибутов данных. Чтобы добавить AJAX-фреймворк, просто включите его, поместив тег {% framework %} любом месте рассматриваемой страницы или макета. Для этого требуется jQuery (который должен быть загружен до фреймворка), поэтому ваша страница может выглядеть так:

 <script src="{{ [ 'assets/js/jquery.min.js', ]|theme }}"></script> {% framework %} 

AJAX-запросы работают, вызывая обработчик событий на сервере. Этот обработчик событий может затем обновить элементы страницы, используя партиалы. В нашем распоряжении есть два API для выполнения задач AJAX:

API атрибутов данных

Этот API позволяет отправлять запросы AJAX без какого-либо JavaScript (менее многословно, чем JavaScript API). Вот пример с их сайта с использованием API атрибутов данных. После успешного запроса он перенаправляет пользователя на другую страницу:

 <form data-request="onLogin" data-request-redirect="/admin"> 

Легко и эффективно. Единственный недостаток, который я могу видеть здесь, — это ограниченный список атрибутов данных в нашем распоряжении. Тем не менее, JavaScript API предлагает более мощный вариант.

API JavaScript

Этот API более мощный, чем API атрибутов данных, так как он позволяет нам использовать любые параметры и методы, совместимые с функцией JQuery AJAX. Мы можем использовать метод request() с любым элементом внутри формы или в самой форме. Метод request() имеет единственный обязательный параметр — имя обработчика. Вот пример:

 <form onsubmit= " $(this) .request('onProcess'); return false;" > 

С этим методом мы получаем гораздо больше гибкости и контроля. Чтобы узнать больше о модуле AJAX, ознакомьтесь с документацией здесь .

Легкая расширяемость

Октябрь CMS легко расширяется с помощью плагинов и компонентов. Согласно документации:

Плагины — это основа для добавления новых функций в CMS путем его расширения … Компоненты — это строительные блоки, которые можно прикрепить к любой странице или макету.

Давайте рассмотрим каждую из этих функций подробно.

Плагины

Плагины — это основа расширения октябрьской CMS вне функциональности. Они могут определять компоненты, добавлять внутренние страницы, взаимодействовать и редактировать функциональность других плагинов, среди прочего. Их легко описать и настроить, и они находятся в каталоге /plugins . Чтобы приступить к разработке плагинов, посетите документацию по плагину или следите за обновлениями для предстоящего учебного курса по SitePoint через день или два.

Компоненты

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

  1. Внедрение переменных путем участия в цикле выполнения страницы
  2. Обработка событий AJAX, вызванных страницей
  3. Предоставление базовой разметки с использованием частичных

Чтобы узнать больше о компонентах, проверьте документацию здесь .

Заворачивать

Собственная философия October CMS представлена ​​в их документации. Начало работы — чрезвычайно простой процесс, позволяющий вам чувствовать себя комфортно с CMS. Два парня, стоящие за этим, Алексей Бобков и Сэмюэль Жорж, абсолютно уверены в том, чтобы упростить веб-разработку и развертывание, и для меня это огромный атрибут этого проекта.

Если бы я мог найти одну вещь, которая не нравилась бы в этом, это было бы, что платформа AJAX зависит от jQuery. Это не значит, что он не прочный и не очень функциональный — на самом деле я лично считаю, что функция jQuery AJAX потрясающая. В любом случае у вас не должно быть особых проблем с реализацией собственного набора JS, если вы пожелаете. Кроме этого, я действительно взволнован этой CMS и уже планирую использовать ее в будущем проекте.