masihfathi/yii2-drag-drop-forms

一个完整的拖拽表单构建器

安装: 61

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 3

开放性问题: 0

语言:JavaScript

类型:yii2-extension

dev-master 2017-11-26 10:17 UTC

This package is auto-updated.

Last update: 2024-09-12 04:29:08 UTC


README

特性

  1. 生成表单、调查、民意调查、问卷调查(类 FormBuilder)
  • 拖拽 - 排序、编辑和删除项
  • AJAX 实现的 CRUD 操作
  • 内置 RBAC 组件
  1. 表单渲染小部件(类 Form)
  • 验证表单(动态模型)
  1. 将表单提交的数据存储在数据库中
  • 表单列表(GridView)
  • 创建表单后创建数据库表
  • 删除表单后删除数据库表
  • 在表单中添加字段后添加表列
  • 更改字段名称后重命名表列
  • 删除表单中的字段后删除表列

用户表单演示: user forms

新增功能

  • 编辑、删除、预览提交项数据
  • 搜索和过滤提交项数据
  • 表单数据提交后的事件,用于支付或...

提交数据演示

submitted data

错误修复

  • 修复视图错误

待办事项

  • 添加模块以管理支付方式,例如 PayPal、本地支付,并将支付按钮作为可选的拖拽字段添加到表单构建器中

安装表单构建器

composer require masihfathi/yii2-drag-drop-forms "dev-master"

配置表单构建器

请确保您已在配置文件中正确配置了 db 应用程序组件,并运行以下命令

$ php yii migrate/up --migrationPath=@vendor/masihfathi/yii2-drag-drop-forms/migrations

在您的配置文件中添加以下代码

'modules' => [
    'forms' => [
        'class' => '\masihfathi\form\Module',
     ],
     // Module Kartik-v Grid
    'gridview' => [
        'class' => '\kartik\grid\Module'
     ], 
]

用法

翻译工具的 URL

/forms/module/index                    // List of all forms                     
/forms/module/user                     // List of user forms
/forms/module/view                     // Preview form
/forms/module/create                   // FormBuilder - create form
/forms/module/update                   // Update form 
/forms/module/delete                   // Delete form

完整的表单构建器配置示例

'modules' => [
      'forms' => [
          'class' => 'masihfathi\form\Module',
          'db' => 'db',
          'formsTable' => '{{%forms}}',
          'formDataTable' => 'form_', // dont use prefix please
          'sendEmail' => true, 
          'emailSender' => 'info@email.net',
          'rules' => [
                [
                    'actions' => [ 'update', 'delete', 'clone','deletemultiple','preview','update-item'],
                    'allow' => true,
                    'roles' => ['updateOwnForm'],   // rule only owner can edit form
                ],
                [
                    'actions' => ['user', 'create'],
                    'allow' => true,
                    'roles' => ['user'],            // role only authenticated user can
                ]
            ],
          'controllerMap' => [
            'module' => [
              'class' => '\masihfathi\form\controllers\ModuleController',
              'on afterSubmit'=>function($event){
                    // code
                }
            ]
          ]
      ]
],

表单渲染小部件

use masihfathi\form\Form;
echo Form::widget([
     'body' => '[[{"field": "input", "type": "text", "width": "col-md-5", "name": "email", "placeholder": "email"},{"field": "input", "name": "pass", "type": "text", "placeholder": "pass", "width": "col-md-5"},{"field": "submit", "width": "col-md-2", "backgroundcolor": "btn-info", "label": "Submit"}]]',
     'typeRender' => 'php'
     ]);

  echo Form::widget([
     'formId' => 1, // equivalennt 'form' => FormModel::findOne(1)->body
  ]);

配置 RBAC 组件

在您继续之前,您需要在数据库中创建这些表。

php yii migrate --migrationPath=@yii/rbac/migrations

构建授权数据

要使用生成器控制台,请将以下代码添加到配置控制台文件中

'controllerMap' => [
  'formsrbac' => [
      'class' => 'masihfathi\form\migrations\RbacController',
  ],
],

在数据库中创建 rbac 表

php yii migrate --migrationPath=@yii/rbac/migrations

为表单模块创建规则和角色

php yii formsrbac/generate

测试

要运行测试,请执行

composer exec -v -- codecept -c vendor/masihfathi/yii2-drag-drop-forms run

cd vendor/masihfathi/yii2-drag-drop-forms
codecept run

依赖关系

    "require": {
        "php": ">=7.0.0",
	"yiisoft/yii2": "~2.0.0",
        "kartik-v/yii2-detail-view": "*",
        "kartik-v/yii2-grid": "*"
    }

Font Awesome 必须可用。