October CMS — это легковесная система управления контентом, основанная на Laravel, которая призвана снова упростить ваш процесс веб-разработки. Он имеет очень простую и быструю кривую обучения, гарантируя, что вы будете в курсе событий и в кратчайшие сроки. Он масштабируется и расширяется с помощью системы плагинов, легко поддерживается с помощью файловой системы и позволяет без труда создавать административные внутренние интерфейсы. Прежде чем мы углубимся в эту многообещающую CMS, давайте немного рассмотрим основы.
Построен на Laravel PHP Framework
Фреймворк Laravel PHP легок, крепок и элегантен. По их мнению, это фреймворк, созданный для творческого пользователя, который превращает повседневные задачи в простые и приятные. Философии как Laravel, так и October CMS очень хорошо совпадают, и нет ничего удивительного в том, что октябрь прошел с этим типом фреймворка. Комбинация обеспечивает идеальное сочетание простоты, скорости, элегантности и ремесленного программирования. Давайте теперь посмотрим на настройку нашего первого октябрьского проекта CMS.
Начните в кратчайшие сроки
Октябрь делает установку бризом для нас. Следующие шаги помогут вам в разработке:
- Либо клонируйте их репозиторий на GitHub, либо загрузите установщик . Рекомендуемый способ — загрузить установщик, так как он прост и быстр и позволяет вам выполнять некоторые настройки прямо в браузере с помощью простого пошагового интерфейса.
- Извлеките файлы в нужный локальный каталог и настройте локальный сервер в соответствии с локальным путем.
- Настройте новую базу данных и запишите имя базы данных.
- Перейдите к файлу
install.php
в вашем браузере, следуйте инструкциям на экране и введите переменные конфигурации.
По запросу удалите установочные файлы после успешной установки, и вы будете готовы к работе. Теперь вы можете перейти к интерфейсу вашего сайта, а также изучить область администратора. Давайте углубимся во внутреннюю работу октябрьской CMS.
Как все это работает — темы и шаблоны
Каталог тем является основой для конечного вывода любой новой установки CMS в октябре. Этот каталог содержит все подкаталоги и файлы, необходимые для отметки CMS. По умолчанию October CMS запускает демонстрационную тему. Создать свой собственный так же просто, как создать новый каталог (назовите его как угодно), файл конфигурации темы с именем theme.yaml
в корне этого каталога и каталог страниц с файлом подкачки в нем. А пока давайте рассмотрим демонстрационную тему, чтобы понять внутреннюю работу.
Каждая тема состоит из подкаталогов для страниц, партиалов, макетов, файлов содержимого и ресурсов. Каждый из этих каталогов может содержать подкаталоги, что позволяет упростить крупномасштабные проекты. Вот как выглядит структура демо-каталога:
themes/ demo/ assets/ css/ images/ javascript/ ... content/ layouts/ pages/ partials/ theme.yaml
Файлы шаблонов имеют простую структуру и используют разметку Twig . Twig — это движок шаблонов PHP, улучшающий и ускоряющий шаблоны и сводящий общие подробные задачи к простым фрагментам кода. Есть три части любой страницы, макета и частичных файлов шаблона:
- конфигурация
- Код PHP
- Разметка ветки
Раздел конфигурации структурирован как файл 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 %}
Давайте еще немного посмотрим, для чего служит каждый файл шаблона и раздел.
страницы
Файлы страниц имеют понятное название — они описывают страницы вашего сайта. Они принимают три параметра в разделе конфигурации:
-
url
—url
страницы (обязательно) -
title
—title
страницы (обязательно) -
layout
—layout
страницы, который может указывать на файл макета (необязательно) -
description
— описание страницы в бэкэнде (необязательно)
URL страницы может принимать параметры в зависимости от рассматриваемой страницы. 404 и страницы ошибок также могут быть указаны. Вот простой пример макета страницы:
url = "/" title = "Welcome" description = "The home page." == <h1>Welcome Home</h1>
Вы можете прочитать больше на страницах здесь .
Partials
Частицы также имеют довольно понятное имя — они относятся к файлам, которые содержат частичные объемы кода. Частичные файлы являются мощными, потому что их можно вызывать и повторно использовать на страницах, в макетах или других частичных файлах. Вы можете использовать тег {% partial %}
для вызова частичного из другого файла. Частичные поддерживают только один параметр конфигурации:
-
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 в октябре. Они принимают два варианта конфигурации, оба из которых используются в интерфейсе сервера:
-
name
— имя файла макета для серверной части (необязательно) -
description
—description
файла макета для серверной части (необязательно)
Страница макета может выглядеть примерно так:
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>
Довольно аккуратно! Подробнее о макетах здесь .
Блоки контента
Файлы содержимого содержат разделы содержимого и могут вызываться из макета, страницы или частичных файлов. Файлы содержимого поддерживают три расширения:
- .htm (для разметки HTML)
- .txt (для простого текста)
- .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 через день или два.
Компоненты
Компоненты предоставляют нам настраиваемые строительные блоки, и они могут быть прикреплены к любой странице, частичной или макет. Они расширяют поведение интерфейсных страниц:
- Внедрение переменных путем участия в цикле выполнения страницы
- Обработка событий AJAX, вызванных страницей
- Предоставление базовой разметки с использованием частичных
Чтобы узнать больше о компонентах, проверьте документацию здесь .
Заворачивать
Собственная философия October CMS представлена в их документации. Начало работы — чрезвычайно простой процесс, позволяющий вам чувствовать себя комфортно с CMS. Два парня, стоящие за этим, Алексей Бобков и Сэмюэль Жорж, абсолютно уверены в том, чтобы упростить веб-разработку и развертывание, и для меня это огромный атрибут этого проекта.
Если бы я мог найти одну вещь, которая не нравилась бы в этом, это было бы, что платформа AJAX зависит от jQuery. Это не значит, что он не прочный и не очень функциональный — на самом деле я лично считаю, что функция jQuery AJAX потрясающая. В любом случае у вас не должно быть особых проблем с реализацией собственного набора JS, если вы пожелаете. Кроме этого, я действительно взволнован этой CMS и уже планирую использовать ее в будущем проекте.