mecsu/yii2-content

内容管理器

维护者

详细信息

github.com/mecsu/yii2-content

源代码

安装: 4

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 1

类型:yii2-extension

dev-master 2023-01-11 15:59 UTC

This package is auto-updated.

Last update: 2024-09-11 20:06:39 UTC


README

Yii2 Downloads Packagist Version Progress GitHub license

Yii2 Content

Yii2 内容

Yii2 的内容管理器。该模块允许您创建多语言内容块,以及可以由扩展组件在前端显示的列表。

该模块是 Butterfly.СMS 内容管理系统的一个组成部分,但也可以作为一个独立的扩展使用。

版权所有(c)2019-2021 W.D.M.Group, Ukraine

要求

安装

要在控制台安装模块,请运行以下命令

$ composer require "wdmg/yii2-content"

配置数据库连接后,在控制台运行以下命令

$ php yii content/init

然后选择要执行的操作

  1. 应用所有模块迁移
  2. 撤销所有模块迁移

迁移

在任何情况下,您都可以在控制台运行以下命令以执行迁移和创建初始数据

$ php yii migrate --migrationPath=@vendor/wdmg/yii2-content/migrations

配置

要将模块添加到项目中,请在配置文件中添加以下数据

'modules' => [
    ...
    'content' => [
        'class' => 'wdmg\content\Module',
        'routePrefix' => 'admin'
    ],
    ...
],

使用示例

要获取内容,可以使用带有 idalias(块/列表名称的别名)的组件方法 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 - 添加内容组件和内容块/列表的预览