amiirarsallan/laravel-cksource

CKEditor & CKFinder 集成用于 Laravel 框架。

dev-master 2018-03-30 13:53 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:41:54 UTC


README

此包提供了 CKSource 的两种产品,称为 CKEditor,它是世界上最好的 WYSIWYG 编辑器之一,以及 CKFinder,它通过 CKEditor 和自身创建一个非常简单、安全的文件上传和管理,适用于 Laravel 5.4+ 框架。

安装

使用 composer 安装包

composer require amiirarsallan/laravel-cksource

发布资产

在您的 Laravel 主项目目录中运行此 artisan 命令

php artisan vendor:publish --tag=laravel-cksource

注意

运行此命令后,您将在 Laravel 项目 storage 目录下看到一个名为 files 的新目录,此目录将用作 CKFinder 上传路径。

配置 CKFinder

打开位于此路径 /public/vendor/amiirarsalan/laravel-cksource/src/assets/ckfinder/ 的 CKFinder config.php 文件,在第 29 行将 YOUR_APP_KEY 替换为您自己的应用程序密钥,存储在项目的 .env 文件中,不要使用 base64: 标志

$config['authentication'] = function () {
    $APP_KEY = "YOUR_APP_KEY";

然后,我们来到认证最重要的部分,

1- 在登录时设置 Cookie 进行用户认证

在您的用户登录过程中,您必须在登录尝试成功后重定向用户,因此您必须使用 withCookie() 命令设置一个带有名称 allowCkfinder 和值为 true 的 Cookie,代码片段应类似于以下内容

//Attempt to login user
if (!auth()->attempt($credentials, request('remember'))) {
    return back()->withErrors([
        'message' => 'Please check your credentials.'
    ]);
}

//Redirect to panel
return redirect()->withCookie(cookie()->forever('allowCkfinder', true));

2- 在用户注销时取消 Cookie

为了使整个过程完全工作,您必须在用户注销时删除 Cookie,代码片段应类似于以下内容

//Log out the user
auth()->logout();

//Redirect to index
return redirect()->withCookie(cookie()->forget('allowCkfinder'));

更新

更新 composer 至第一级

composer update amiirarsallan/laravel-cksource

使用 --force 标志发布新资产以覆盖现有文件

php artisan vendor:publish --tag=laravel-cksource --force

用法

包生成新的自定义 Laravel Blade 语法,

@ckeditor( [arg1](textarea name), [arg2](textarea id), [arg3]{optional}(ckeditor custom configs)  )

此语法在您的视图中创建一个新的 <textarea> HTML 元素,其 nameid 属性将通过 @ckeditor 语法的第一个两个参数填充。

第三个参数将是 CKFinder 的自定义配置。

注意Auth::check() 返回 true 结果时,CKFinder 和 CKEditor 的浏览服务器按钮将可用,这意味着当用户认证时,CKFinder 将启用。

注意

通过 Laravel Auth 禁用 CKFinder 激活(不推荐)

要禁用通过 Laravel Auth 的 CKFinder 激活,只需通过以下路径进入您的 Laravel 项目

/public/vendor/amiirarsallan/laravel-cksource/src/assets/ckfinder/

并打开此目录中的 config.php 文件,然后删除第 28 行的整个 $config['authentication'] 代码,并仅写入以下内容

$config['authentication'] = function () {
    return true;
};

无效请求 | 未找到接口 'CKSource\CKFinder\Request\Transformer\TransformerInterface'

此错误通常发生在您从 CKEditor 对话框中点击浏览服务器按钮时,要修复此错误,您必须打开 CKFinder 配置 /public/vendor/amiirarsalan/laravel-cksource/src/assets/ckfinder/config.php 并注释第 13、14 行

// Production
// error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
// ini_set('display_errors', 0);

并取消注释第 17、18 行

// Development
error_reporting(E_ALL);
ini_set('display_errors', 1);

保存配置文件,并尝试重新打开 CKEditor 中的浏览服务器对话框,如果屏幕上显示的错误如下所示,

致命错误:未找到接口 'CKSource\CKFinder\Request\Transformer\TransformerInterface' 在 X:\X\public\vendor\amiirarsallan\laravel-cksource\src\assets\ckfinder\core\connector\php\vendor\cksource\ckfinder\src\CKSource\CKFinder\Request\Transformer\JsonTransformer.php 第 24 行

转到路径

X:\X\public\vendor\amiirarsallan\laravel-cksource\src\assets\ckfinder\core\connector\php\vendor\cksource\ckfinder\src\CKSource\CKFinder\Request\Transformer\JsonTransformer.php

并打开 JsonTransformer.php 文件,在第 24 行更改代码如下

class JsonTransformer //implements TransformerInterface
{

这将修复浏览服务器对话框。