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 上效果不佳,主要是因为路由。
已解决:
- 找到正确的 ckeditor 目录(我的 Laravel Webroot 有超过 1 个):在我的例子中 packages/frozennode/administrator/js/ckeditor/
- 安装http://imageuploaderforckeditor.altervista.org/
2.a 按照说明编辑 config.js,再次在正确的目录中
编辑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 图片!我真的希望他们默认在包中包含这个或类似的东西,这真的是基本的所见即所得的东西。
到目前为止,我真的很喜欢 FrozenNode 的所有功能 Laravel Administrator。
对于 Laravel 5.1 中的一个新项目,我需要一个简单的 CMS - add/edit一个页面,添加图片和视频。
但是所见即所得的字段不包括任何类型的媒体管理。 我可以以某种方式添加它吗?
文档中没有提供这个,但我认为这个要求一定很常见。
我正在考虑扩展现有的图像选择器功能,但我想要一个 "Choose Image" 按钮而不是 URL,它会打开一个弹出窗口或叠加层,我可以在其中从文件夹中选择图像或将新图像上传到该文件夹。 类似于在 Wordpress 中完成的操作。 另一种可能的方法是将 jquery 文件上传器放在那里。
有办法吗?
到目前为止,我尝试使用 CKEditors 插件,但是包括 browse/upload 在内的那些插件在 Laravel 上效果不佳,主要是因为路由。
已解决:
- 找到正确的 ckeditor 目录(我的 Laravel Webroot 有超过 1 个):在我的例子中 packages/frozennode/administrator/js/ckeditor/
- 安装http://imageuploaderforckeditor.altervista.org/ 2.a 按照说明编辑 config.js,再次在正确的目录中
编辑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 图片!我真的希望他们默认在包中包含这个或类似的东西,这真的是基本的所见即所得的东西。