mecsu / yii2-content
内容管理器
dev-master
2023-01-11 15:59 UTC
Requires
- wdmg/yii2-base: ^1.3.0
- wdmg/yii2-selectinput: ^1.0.9
- wdmg/yii2-widgets: ^1.0.4
- yiisoft/yii2: ^2.0.40
This package is auto-updated.
Last update: 2024-09-11 20:06:39 UTC
README
Yii2 内容
Yii2 的内容管理器。该模块允许您创建多语言内容块,以及可以由扩展组件在前端显示的列表。
该模块是 Butterfly.СMS 内容管理系统的一个组成部分,但也可以作为一个独立的扩展使用。
版权所有(c)2019-2021 W.D.M.Group, Ukraine
要求
- PHP 5.6 或更高版本
- Yii2 v.2.0.40 及最新版本
- Yii2 Base 模块(必需)
- Yii2 SelectInput 小部件(必需)
安装
要在控制台安装模块,请运行以下命令
$ composer require "wdmg/yii2-content"
配置数据库连接后,在控制台运行以下命令
$ php yii content/init
然后选择要执行的操作
- 应用所有模块迁移
- 撤销所有模块迁移
迁移
在任何情况下,您都可以在控制台运行以下命令以执行迁移和创建初始数据
$ php yii migrate --migrationPath=@vendor/wdmg/yii2-content/migrations
配置
要将模块添加到项目中,请在配置文件中添加以下数据
'modules' => [
...
'content' => [
'class' => 'wdmg\content\Module',
'routePrefix' => 'admin'
],
...
],
使用示例
要获取内容,可以使用带有 id
或 alias
(块/列表名称的别名)的组件方法 Yii::$app->content->get()。
内容块
<?php
if ($block = Yii::$app->content->get(1)) {
// Raw output
echo $block['adress']; // where `adress` as filed name
echo $block['phone']; // where `phone` as filed name
echo $block['email']; // where `email` as filed name
// With ListView and ArrayDataProvider
$dataProvider = new \yii\data\ArrayDataProvider([
'allModels' => $block
]);
echo yii\widgets\ListView::widget([
'dataProvider' => $dataProvider,
'layout' => '<dl class="dl-horizontal">{items}</dl>{pager}',
'itemView' => function($data, $key, $index, $widget) {
return "<dt>" . $key . "</dt>" . "<dd>" . $data . "</dd>";
}
]);
}
?>
内容列表
<?php
if ($list = Yii::$app->content->get('our-team', 'ru-RU')) {
// Raw output
foreach ($list as $row) {
echo $row['first_name']; // where `first_name` as filed name
echo $row['last_name']; // where `last_name` as filed name
}
// With GridView and ArrayDataProvider
$dataProvider = new \yii\data\ArrayDataProvider([
'allModels' => $list
]);
echo \yii\grid\GridView::widget([
'dataProvider' => $dataProvider,
]);
}
?>
路由
使用模块的 Module::dashboardNavItems()
方法生成用于 NavBar 的导航项列表,如下所示
<?php
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'label' => 'Modules',
'items' => [
Yii::$app->getModule('content')->dashboardNavItems(),
...
]
]);
?>
状态和版本 [准备使用]
- v.1.1.2 - RBAC 实现
- v.1.1.1 - 更新 README.md
- v.1.1.0 - 多语言支持
- v.1.0.4 - 修改 DynamicModel 命名空间
- v.1.0.3 - 记录活动
- v.1.0.2 - 添加分页,更新依赖关系
- v.1.0.1 - 块、内容和字段的 CRUD
- v.1.0.0 - 添加内容组件和内容块/列表的预览