Aloia CMS – это система управления контентом с плоскими файлами для Laravel. Вам не нужно перестраивать все приложение, чтобы предложить возможности CMS, и вы можете включить Aloia в существующее приложение.
Aloia предлагает следующие типы контента: стандартные файлы, которыми можно управлять как с плоскими файлами в Markdown или HTML.
- Page
- Article
- ContentBlock
- MetaTag
Давайте возьмем тип контента Article в качестве примера и продемонстрируем, как вы взаимодействуете с этими моделями плоских файлов:
use AloiaCms\Models\Article;
use Illuminate\Support\Collection;
// Get a collection of Article[]|Collection
$articles = Article::all();
// Find an article
$article = Article::find('this-post-is-amazing');
И более сложный пример обновления статьи, который затем обновите плоский файл в выбранном формате:
use Carbon\Carbon;
Article::find('this-post-is-amazing')
// md is the default, but you can use html as well.
->setExtension('md')
->setMatter([
'description' => 'This post is about beautiful things',
'is_published' => true,
'is_sechduled' => false,
// Either use post_date in setMatter() or setPostDate()
'post_date' => date('Y-m-d')
])
->setPostDate(Carbon::now())
->setBody('# This is the content of an article')
->save();
ContentBlock — еще один интересный тип контента, поскольку он позволяет создавать частичные блоки контента и отображать их в файле блейда.Например, для следующего блока контента в Markdown:
## Title of the content
This is a paragraph
Блок контента можно отредактировать, а затем отобразить в файле Blade:
{!! Block::get('test') !!}
Что будет отображать следующий вывод:
<h2>Title of the content</h2>
<p>This is a paragraph</p>
Вы также можете создавать [настраиваемые типы контента Создание типов контента и взаимодействие с ними, как и с любыми другими встроенными типами контента.
Узнать больше
Ознакомьтесь с документацией Aloia CMS, чтобы установить этот пакет и изучить как это использовать. Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.