eniskeskin/laravel-responsivefilemanager

将Alberto Peripolli的Responsive File Manager集成到Laravel中

0.1.1 2020-09-26 13:02 UTC

README

GitHub issues GitHub license GitHub license Maintenance GitHub tag

本软件包含Responsive File Manager(RFM)的修改版 Responsive File Manager 请参阅 官方网站

Responsive File Manager (RFM)遵循CC BY-NC 3.0许可证,这意味着软件不能用于商业目的的再分发。

CC BY-NC 3.0

如果您想用于商业目的,请查看作者(Alberto Peripolli)的网站

本仓库除明确指出部分适用其他许可证外,均受MIT许可证保护。

对RFM进行了以下修改:

  • 防止冲突
  • 修复小错误
  • 适应Laravel

此处Laravel插件代码部分受MIT许可证保护。

RFM作者为其代码提供商业版本(修改后的include.js)。如果您在Laravel应用中使用CSRF检查,需要在ajax调用中添加_token: jQuery('meta[name="csrf-token"]').attr('content'),您可以使用www.diffchecker.com来检查您需要对include.commercial.js文件进行的修改。我无法提供RFM用于商业目的的许可证

如果您有任何修改、建议或其他事项,请告诉我。如果您完成了一些有趣的事情并想分享,请不要犹豫,提交PR

阅读Responsive File Manager文档

如何安装?

#1

在您的项目中安装

composer require kwaadpepper/laravel-responsivefilemanager

现在有一个新的配置文件rfm.php

config/app.php中安装

'providers' => [
        /*
         * Laravel Framework Service Providers...
         */
        ...
        // Responsive File Manager
        Kwaadpepper\ResponsiveFileManager\FileManagerServiceProvider::class
],

app/Http/Kernel.php中需要使用StartSession,也可以使用并推荐使用CSRF Token

protected $middlewareGroups = [
    ...
    'web' => [
        ...
        \Illuminate\Session\Middleware\StartSession::class,
        // Responsive File Manager supports CSRF Token usage
        \App\Http\Middleware\VerifyCsrfToken::class
    ]
    ...
];

然后执行以下操作

php artisan vendor:publish --provider="Kwaadpepper\ResponsiveFileManager\FileManagerServiceProvider"

生成用于URL识别的私钥

php artisan rfm:generate

所有配置都已包括,以便开箱即用。文件应存储在public文件夹中。

不要忘记创建上传目录

mkdir -p public/uploads/files/

#2

作为独立使用

使用助手函数编写文件管理器URL

<a href="@filemanager_get_resource(dialog.php)?field_id=imgField&lang=en_EN&akey=@filemanager_get_key()" value="Files">Open RFM</a>

请参阅独立文件管理器文档中的USE AS STAND-ALONE FILE MANAGER

提示:似乎支持Bootstrap Modal

包含在TinyMCE或CKEDITOR中

包含JS

  • 对于CKEDITOR

将#MYTEXTAREAJS替换为您的textarea输入

<script src='{{ asset('/vendor/unisharp/laravel-ckeditor/ckeditor.js') }}'></script>
<script>
    $(document).ready(function() {
        if($("#MYTEXTAREAID").length) {
            CKEDITOR.replace( 'postBody', {
                filebrowserBrowseUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=2&editor=ckeditor&fldr=',
                filebrowserUploadUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=2&editor=ckeditor&fldr=',
                filebrowserImageBrowseUrl : '@filemanager_get_resource(dialog.php)?akey=@filemanager_get_key()&type=1&editor=ckeditor&fldr=',
                language : '<?php App::getLocale() ?>'
            });
        }
    })
</script>
  • 对于TinyMCE

使用tinymce参数

$(document).ready(() => {
    $('textarea').first().tinymce({
        script_url : '/tinymce/tinymce.min.js',
        width: 680,height: 300,
        plugins: [
            "advlist autolink link image lists charmap print preview hr anchor pagebreak",
            "searchreplace wordcount visualblocks visualchars insertdatetime media nonbreaking",
            "table contextmenu directionality emoticons paste textcolor filemanager code"
    ],
    toolbar1: "undo redo | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | styleselect",
    toolbar2: "| responsivefilemanager | link unlink anchor | image media | forecolor backcolor  | print preview code ",
    image_advtab: true ,
    filemanager_access_key: '@filemanager_get_key()',
    filemanager_sort_by: '',
    filemanager_descending: '',
    filemanager_subfolder: '',
    filemanager_crossdomain: '',
    external_filemanager_path: '@filemanager_get_resource(dialog.php)',
    filemanager_title:"Responsive Filemanager" ,
    external_plugins: { "filemanager" : "/vendor/responsivefilemanager/plugin.min.js"}
    });
});

要创建私有文件夹,请使用.htaccess并设置Deny from all

配置

语言

此软件包支持多种语言,但仍不完整。如果您有相关技能,请贡献力量。

  1. URL获取参数 ($_GET)
  2. RF.language会话变量(用户在下拉列表中选择的语言
  3. config.php(rfm.phpdefault_language
  4. 用户首选语言(HTTP头
  5. 您的Laravel应用默认语言
可用语言
az_AZ      Azərbaycan dili
bg_BG      български език
ca         Català, valencià
cs         čeština, český jazyk
da         Dansk
de         Deutsch
el_GR      ελληνικά
en_EN      English
es         Español
fa         فارسی
fi_FI      Finnish
fr_FR      Français
he_IL      Hebrew (Israel)
hr         Hrvatski jezik
hu_HU      Magyar
id         Bahasa Indonesia
it         Italiano
ja         日本
lt         Lietuvių kalba
mn_MN      монгол
nb_NO      Norsk bokmål
nn_NO      Norsk nynorsk
nl         Nederlands, Vlaams
pl         Język polski, polszczyzna
pt_BR      Português(Brazil,
pt_PT      Português
ro         Română
ru         Pусский язык
sk         Slovenčina
sl         Slovenski jezik
sv_SE      Svenska
th_TH      ไทย
tr_TR      Türkçe
uk_UA      Yкраїнська мова
vi         Tiếng Việt
zh_CN      中文 (Zhōngwén), 汉语, 漢語

FTP

待定

TODO

  • 私钥设置
  • 对JS方面的更多修正
  • 对更多语言进行修正
  • 与tinyMCE进行测试
  • 包含商业支持
  • 测试和调试FTP功能(Alpha仍需要调试一些功能)
  • TODO: 为预览缓存FTP缩略图(仅图像)
  • 多用户和身份验证支持
  • 编译资源
  • 发布软件包
  • 重写路由以使其更简洁(例如:ajax_calls/{action}/{subaction})
  • 正确分离视图和逻辑(例如:dialog.php OMG <(o_O)>)