sy/bootstrap-cms

Plugin for adding CMS feature

Installs: 304

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 6

Language:JavaScript


README

sy/bootstrap plugin for adding "CMS" feature in your sy/project based application.

Installation

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:

  1. Run composer require
  2. Copy templates files
  3. Create flyway migration file
  4. Copy assets files
  5. Run composer build
  6. Run composer db migrate

Page methods

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');
	}

Add URL converter in Application.php

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());
	}

}

Add the content pages sitemap in Sitemap.php

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
	}

}