This module provides a web interface for content management system and includes following features:
- Allows CRUD operations for pages
- Support Markdown Editor
- Support Froala Editor
- Support Comments Management System
- Integrated with yii2mod/base
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yii2mod/yii2-cms "*"
or add
"yii2mod/yii2-cms": "*"
to the require section of your composer.json.
Database Migrations
Before usage this extension, we'll also need to prepare the database.
$ php yii migrate --migrationPath=@vendor/yii2mod/yii2-comments/migrations
$ php yii migrate --migrationPath=@vendor/yii2mod/yii2-cms/migrations
Module Setup
To access the module, you need to configure the modules array in your application configuration:
'modules' => [
'cms' => [
'class' => 'yii2mod\cms\Module',
],
],
You can then access to management section through the following URL:
Configure Url Manager
You need to configure the urlManager
array in your application configuration:
'components' => [
'urlManager' => [
'rules' => [
['class' => 'yii2mod\cms\components\PageUrlRule'],
]
],
],
Setup Page Action
Add to SiteController (or configure via $route
param in urlManager
):
public function actions()
{
return [
'page' => [
'class' => 'yii2mod\cms\actions\PageAction',
]
];
}
Now you can use this module with all available features.
- By default this extension uses the
froala editor
for manage cms pages, you can change editor configuration by the following code:
List of options: https://www.froala.com/wysiwyg-editor/docs/options
Configuration example: https://github.com/froala/yii2-froala-editor#usage
'modules' => [
'cms' => [
'class' => 'yii2mod\cms\Module',
'froalaEditorOptions' => [
// your custom configuration
'clientPlugins' => [
],
'clientOptions' => [
],
'excludedPlugins' => [
],
],
],
],
- Markdown Editor support:
'modules' => [
'cms' => [
'class' => 'yii2mod\cms\Module',
'enableMarkdown' => true,
// List of options: https://github.com/NextStepWebs/simplemde-markdown-editor#configuration
'markdownEditorOptions' => [
'showIcons' => ['code', 'table'],
],
],
],
- You can insert your own widget on the page by the following steps:
- Create the widget, for example:
namespace app\widgets;
use yii\base\Widget;
class MyWidget extends Widget
{
/**
* @inheritdoc
*/
public function run()
{
parent::run();
echo 'Text from widget';
}
/**
* This function used for render the widget
*
* @return string
*/
public static function show()
{
return self::widget();
}
}
- When you create the page via admin panel add the following code to the page content:
[[\app\widgets\MyWidget:show]]
- You can use parameters in your page content, for example: {siteName}, {homeUrl}. For parsing this parameters you can use the
baseTemplateParams
property:
public function actions()
{
return [
'page' => [
'class' => 'yii2mod\cms\actions\PageAction',
'baseTemplateParams' => [
'homeUrl' => 'your site home url',
'siteName' => Yii::$app->name
]
],
];
}
- You can change comments module settings by the following code:
public function actions()
{
return [
'page' => [
'class' => 'yii2mod\cms\actions\PageAction',
'commentWidgetParams' => [
'maxLevel' => 1,
'dataProviderConfig' => [
'pagination' => [
'pageSize' => 10
],
],
]
]
];
}
For detail information about comments module please visit the following page