分类目录

链接

友情链接

统计信息

  • 日志总数:116篇
  • 评论总数:185条
  • 分类总数:11个
  • 标签总数:391个
  • 友情链接:0个
  • 网站运行:3288天

2019年十二月
« 10月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
>
现在位置:    首页 > php/mysql > 正文

yii2 使用ueditor编辑器

php/mysql 暂无评论

在yii2 中使用 ueditor 编辑器 其实要注意的问题 还是挺 多的。今天 分享一下关于 yii2 中如何使用 ueditor 吧,做个笔记 以后当资料查看吧

1,这次我们使用的是一个第三分的扩展,kucha-ueditor-widgets

    安装:

       $ php composer.phar require kucha/ueditor "*"  

      或

           php composer require kucha/ueditor "*"

    

    这个视环境而定  在这就不详细介绍了

2,配置

   2.1, 安装好后,我们会发现在 vendor 下 多了个 kucha 的文件夹。里面就是我们这次要安装的 ueditor

   我们在要引用 ueditor的控制器里 引入 这个第三方插件  在控制下加上以上代码,我的就是在DcoumentController

 public function actions()
    {
        return [
            'upload' => [
                'class' => 'kucha\ueditor\UEditorAction',
                'config' => [
                    "imageUrlPrefix"  => "",//图片访问路径前缀
                    "imagePathFormat" => "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}" //上传保存路径
                ],
            ]
        ];
    }

   

   2.2,view 文件下 


     div class="controls">
        <label class="textarea">
      <?=$form->field($modelArticle,'content')->widget('kucha\ueditor\UEditor',[
                  'clientOptions' => [
                  //编辑区域大小
                   'initialFrameWidth' => '960',
                  'initialFrameHeight' => '450',
                  //设置语言
                  'lang' =>'en', //中文为 zh-cn
                  //定制菜单
                 ]]);?>
        </label>
     </div>

     

   2.3, 关闭上传图片时的所有请求的 csrf  因为 csrf 每一次请求都会更新,如果我们不关闭它,就会出现 无法验证你提交的内容 的错误[Unable to verify your data submission]  。这个设置是在 父类控制器的 beforeAction方法中去验证的。

   QQ截图20171008104358.jpg

   所以我们要关闭  这个 csrf ,就必须在这个执行之前。。。为了以后操作方便 而不用经常写 。我通过了行为扩展来重写了

csrf,以后只要在配置文件中 配置一下就可以控制 csrf的开启和关闭 

  先在配置文件中  添加行为扩展 config/main.php

    'as behavior' => [
        'class' => 'backend\components\PreBehavior',
    //        'allowActions' => [
    //            //这里是允许访问的action,不受权限控制
    //            //controller/action
    //            'site/login','site/logout',
    //        ]
        ],

  在相对应的位置生成  PreBehavior.php  ,位置我们可以通过 包名知道,比如我的是:backend/components/PreBehavior.php

    

 PreBehavior.php 代码如下:

<?php

namespace backend\components;

use Yii;
use backend\models;


class PreBehavior extends \yii\base\ActionFilter
{
    public function beforeAction ($action)
    {
        
       
        //关闭 csrf
        if(in_array(Yii::$app->controller->action->id, \Yii::$app->params['nocsrf_action'])){
            //echo Yii::$app->controller->action->id;
           
            $action->controller->enableCsrfValidation = 0;
               
        }
        //设置后台主题 
        $this->setStyle();
        //加载用户在后台设置的配置 到 params
        $this->loadConfig();
        
        return true;
    }
   
    /**
     * 
     *   加载用户在后台设置的配置 到 params
     * 
     * **/
    
    public function loadConfig(){
        
      
        $configs = \backend\controllers\ConfigController::getConfigList();
        
        Yii::$app->params = array_merge(Yii::$app->params,$configs);
        
    }
    /**
     * 
     *    设置主题 
     * 
     * 
     * **/
    public function setStyle(){
        
        //修改主题 
        $model = new models\Config();
        $skin  = $model->getConfig("COLOR_STYLE");
        $skin = $skin['value'];
        $colors = Array(
             "skin-blue",
             'skin-black',
             'skin-red',
             'skin-yellow',
             'skin-purple',
             'skin-green',
             'skin-blue-light',
             'skin-black-light',
             'skin-red-light',
             'skin-red-light',
             'skin-purple-light',
             'skin-green-light',
        );
        
        $skin = in_array($skin, $colors)?$skin:"skin-red";
        
        Yii::$app->components['assetManager']['bundles']['dmstr\web\AdminLteAsset']['skin'];
        $componets = Yii::$app->getComponents();
        $componets['assetManager']['bundles']['dmstr\web\AdminLteAsset']['skin'] = $skin;
        
        Yii::$app->setComponents($componets);
        
        
    }
    
}

我在行为扩展中  重写了 beforeAction,并通过判断配置文件 parmas['nocsrf_action'] 来判断这个action是否关闭csrf

config/params.php 代码:

<?php
return [
    'adminEmail' => 'admin@example.com',
    'pageSize' => 15,
    
    //定义要关闭 _csrf 验证的 action
    'nocsrf_action' =>array(
        'upload',
        'uploadimage',
        
    ),
];

这样就关闭了 想关闭的  csrf.

QQ截图20171008105338.jpg

本次 关于 yii2 下使用 ueditor 就分享到这里!

本文版权归企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改所有,转载引用请完整注明以下信息:
本文作者:admin
本文地址:yii2 使用ueditor编辑器 | 企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改

抱歉!评论已关闭.