sy/bootstrap plugin for adding "CMS" feature in your sy/project based application.
From your sy/project based application directory, run this command:
composer install-plugin cms
It's equivalent to:
composer require sy/bootstrap-cms
NOTES
The install-plugin command will do all these following steps:
- Run composer require
- Copy templates files
- Create flyway migration file
- Copy assets files
- Run composer build
- Run composer db migrate
Create a method in your Project\Application\Page
class (in protected/src/Application/Page.php
):
/**
* Content page
*/
public function contentAction() {
$this->setContentVars([
'CONTENT' => new \Sy\Bootstrap\Component\Cms\Content($this->get('id', 1)),
]);
}
Optionally, override the home page with the content page
/**
* Home page
*/
public function homeAction() {
$this->copy('content');
}
In protected/src/Application.php
<?php
namespace Project;
use Sy\Bootstrap\Lib\Url;
class Application extends \Sy\Bootstrap\Application {
protected function initUrlConverter() {
Url\AliasManager::setAliasFile(__DIR__ . '/../conf/alias.php');
Url::addConverter(new Url\AliasConverter());
Url::addConverter(new Url\ContentConverter()); // Add the content URL converter
Url::addConverter(new Url\ControllerActionConverter());
}
}
In protected/src/Application/Sitemap.php
<?php
namespace Project\Application;
class Sitemap extends \Sy\Bootstrap\Application\Sitemap {
public function __construct() {
parent::__construct();
$this->addProvider(new \Sy\Bootstrap\Application\Sitemap\Page());
$this->addProvider(new \Sy\Bootstrap\Application\Sitemap\Content()); // Add the content sitemap
}
}