amiirarsallan / laravel-cksource
CKEditor & CKFinder 集成用于 Laravel 框架。
Requires
- illuminate/support: ^5.2
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 元素,其 name
和 id
属性将通过 @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
{
这将修复浏览服务器对话框。