FrozenNode Laravel-管理员将图像管理器添加到所见即所得字段

FrozenNode Laravel-Administrator add image manager to wysiwyg field

到目前为止,我真的很喜欢 FrozenNode 的所有功能 Laravel Administrator。

对于 Laravel 5.1 中的一个新项目,我需要一个简单的 CMS - add/edit一个页面,添加图片和视频。

但是所见即所得的字段不包括任何类型的媒体管理。 我可以以某种方式添加它吗?

文档中没有提供这个,但我认为这个要求一定很常见。

我正在考虑扩展现有的图像选择器功能,但我想要一个 "Choose Image" 按钮而不是 URL,它会打开一个弹出窗口或叠加层,我可以在其中从文件夹中选择图像或将新图像上传到该文件夹​​。 类似于在 Wordpress 中完成的操作。 另一种可能的方法是将 jquery 文件上传器放在那里。

有办法吗?

到目前为止,我尝试使用 CKEditors 插件,但是包括 browse/upload 在内的那些插件在 Laravel 上效果不佳,主要是因为路由。

已解决:

  1. 找到正确的 ckeditor 目录(我的 Laravel Webroot 有超过 1 个):在我的例子中 packages/frozennode/administrator/js/ckeditor/
  2. 安装http://imageuploaderforckeditor.altervista.org/ 2.a 按照说明编辑 config.js,再次在正确的目录中
  3. 编辑routes.php转发到Laravel内正确的url,同时附加一个安全令牌...

    Route::group(['middleware' => 'auth'], function () {
    
    // Redirect for ckeditor imageupload with token
    Route::any('admin/YOURTABLE/ckeditor/plugins/imageuploader/{subURL}', function ($subURL) {
    return redirect("packages/frozennode/administrator/js/ckeditor/plugins/imageuploader/".$subURL.'?'.$_SERVER['QUERY_STRING'].
    '&username='. urlencode(Auth::user()->email) .
    '&token='. md5( $tokenstring = Auth::user()->email. 'YOURKEY'. date('d.m.Y')));
    });
    

    });

确保替换 YOURTABLE 和 YOURKEY 4. 编辑 imgbrowser.php,删除对用户名和登录名的检查,改为检查令牌:

if( !isset($_GET['username']) || !isset($_GET['token']) ) {
die('username / token missing');
} elseif( !($_GET['username']) || !($_GET['token']) ) {
    die('username / token missing');
} elseif( $_GET['token'] != ($tokenq = md5( $tokenstring = $_GET['username']. 'YOURKEY'. date('d.m.Y')))  ) {
    die('Token wrong.'. $tokenq. ' '.$tokenstring);
} else {
    $_SESSION["username"] = $_GET['username'];
}

再次确保替换 YOURKEY

就是这样。现在您可以在 Laravel Frozennode Administrator 中上传、浏览和 select 图片!我真的希望他们默认在包中包含这个或类似的东西,这真的是基本的所见即所得的东西。