This module provides a web interface for content management system and includes the 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
Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.