ElFinder 文件管理器的 ZF2 模块。包括 CKEditor 插件
Requires
- php: >=7.0
- rwoverdijk/assetmanager: 1.*
- studio-42/elfinder: 2.1.*
- zendframework/zendframework: ^3.0
Requires (Dev)
- phpunit/phpunit: 4.6.*
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2020-10-16 02:00:49 UTC
README
This package is no longer supported. Maybe look for other options or forks.
此模块尝试在 Zend Framework 2 和 ElFinder 之间提供集成层。
目前此模块通过以下路径提供路由配置以连接到 elfinder: http://yourdomain.com/elfinder
,默认情况下连接器位于 http://yourdomain.com/elfinder/connector
。所有这些都可以通过配置进行更改。
还包括 CKEditor 和 TinyMce 所需的钩子。
##重要安全公告 此模块不提供任何用户身份验证,如果单独使用,将授予任何人对您的公共文件系统的访问权限!预计您将通过 ZF2 设置自己的身份验证和用户管理系统。因此,本模块不打算包含任何。但如果您需要身份验证,您可能想查看 ZfUser 模块,看看它是否适合您。
Change Log
v2.0.2
- 修复了来自上游的 BC 破坏。Js 和 Css 现在已经合并
- 添加了从服务定位器拉取配置的功能,以便进行更复杂的配置。请参阅下面的文档
v2.0.1
- 移除了对 ElFinder 的 @dev 依赖性。
v2.0.0-alpha
- 添加了 composer 定义,使用上游 ElFinder 软件包而不是使用我们自己的。
- 添加了 Asset Manager 模块作为依赖项,以处理构建所需的 JS 和 CSS 文件。
- 清理了视图
请报告您发现的任何错误。
Requirements
Installation
此软件包使用 composer 进行安装。
Installation steps
-
安装 composer 软件包:
composer require reliv/elfinder
-
将 'Reliv\ElFinder' 添加到
[zf2 project folder]/config/application.config.php
中的模块列表中 -
(可选)为您的项目配置模块(请参阅以下配置)
-
(可选)将 ElFinder 查找器添加到需要它的视图中。
-
进行测试,并将任何错误或问题报告给项目。
-
告诉其他人。
Adding ElFinder to your project
Stand Alone
如果您只是想测试或使用ElFinder作为独立的文件管理器,请将浏览器导航到ElFinder的独立路径。如果使用默认设置,此URL为http://yourdomain.com/elfinder/standalone
CkEditor
要将ElFinder添加到CKEditor,请将路径添加到探索窗口的CKEditor配置中。这可以在初始化编辑器时完成,或者简单地将此内容添加到CKEditor的全局配置文件中。默认配置文件位于CKEditor主文件夹中 path/to/ckeditor/config.js
。
将以下行添加到CKEditor的配置中
filebrowserBrowseUrl : '/elfinder/ckeditor', filebrowserImageBrowseUrl : '/elfinder/ckeditor/images',
注意:如果您已更改ElFinder的默认路由,请确保上述代码指向正确的位置。
可选地,您可以通过向CKEditor的配置中添加以下行来自定义弹出窗口的大小以适应您的需求,并根据您的喜好进行调整。
filebrowserWindowHeight : '400', filebrowserWindowWidth : '800'
TinyMce
要将ElFinder添加到TinyMce,请将'public/tinymce/plugins/elfinder'复制到您的TinyMce实例插件文件夹中。
在TinyMce中注册插件。
tinymce.init({ .... plugins: 'elfinder', .... });
在您的应用程序中使用
此模块可以作为文件上传器使用,也可以从现有的挂载点中选择现有文件。为了做到这一点,您的程序需要打开一个指向ElFinder探索窗口的弹出窗口。除此之外,调用窗口还必须定义一个全局javascript函数。
以下是在您的页面上可能添加的示例
<script type="javascript"> function elFinderFileSelected(filePath) { // Do something with the file path returned. } function showElFinder(elFinderExplorerPath, windowWidth, windowHeight) { window.open( elFinderExplorerPath, '', 'resizable=yes, location=no, menubar=no, scrollbars=yes, status=no, toolbar=no, fullscreen=no, dependent=no, width=windowWidth, height=windowHeight, status' ); } </script>
配置(可选)
此模块使用基本的ZF2配置,并将此信息传递给ElFinder。所有 服务器连接器选项 都可用,但由于没有一种适合所有情况的配置,我们对此进行了扩展,以便您可以根据需要具有额外的或特定的设置。
此模块附带了一些预定义的配置,以便您可以尽快启动。*请注意:要使用默认配置,此模块的public文件夹内容必须位于 [project home]/public/modules/el-finder
。换句话说,modules/el-finder
必须是公开可访问的。
####配置挂载点
默认情况下,系统为您设置了两个默认挂载点,[project home]/public/modules/el-finder/files
和 [project home]/public/modules/el-finder/files/images
,但是挂载点的数量没有限制。
要添加新的挂载点,请打开您的应用程序配置或项目全局配置文件,并按如下方式添加挂载点。
return array( 'elfinder' => array( 'mounts' => array( 'defaults' => array( 'myNewMountPoint' => array ( //Mount point definition goes here. //Minimum config below. See ElFinders "Connector //configuration options" for more info 'roots' => array( 'driver' => 'LocalFileSystem', 'path' => '/path/to/files/', 'URL' => 'http://localhost/to/files/' ), ), ), ), ), );
有关所有挂载点配置设置的完整列表,请参阅ElFinder的wiki页面,标题为 连接器配置选项\
####配置服务
一些新的卷驱动程序需要一些复杂的配置,这些配置不能被缓存。因此,您可以提供自己的服务配置,该配置将从服务管理器中提取,而不是从配置数组中提取。
这些配置服务必须实现Reliv\ElFinder\Config\ConfigInterface,并返回一个有效的ElFinder挂载配置,如上面示例所示。此外,此服务必须能够从服务管理器启动,因此它也需要在那里定义。
要为挂载点定义配置服务,以下是上述配置的修改版本。
return array( 'elfinder' => array( 'mounts' => array( 'defaults' => array( 'myNewMountPoint' => array ( //Service Config goes here 'configService' => 'MyServiceHere' ), ), ), ), );
####配置Zf2路由
默认情况下定义了四个路由。
`/elfinder` - Main route to open the explorer window which will pass
back the url for the file selected to the calling window.
`/elfinder/connector` - Route to ElFinders php connector
`/elfinder/standalone` - Route to standalone window. This has no callback
and can be used by itself to manage the filesystem
`/elfinder/ckeditor` - Hook for CKEditor
所有这些路由都可以根据您的偏好进行自定义。要覆盖这些路由,请打开您的应用程序或项目配置文件,并根据需要定义以下路由
return array( 'router' => array( 'routes' => array ( 'elFinder' => array( // route definition goes here // ), 'elFinderConnector' => array( // route definition goes here // ), 'elFinderStandAlone' => array( // route definition goes here // ), 'elFinderCkEditor' => array( // route definition goes here // ), ), ), );
重要:请注意,如果您更改连接器的路由,您需要在应用程序或项目配置文件中添加以下行
return array( 'elfinder' => array( 'connectorPath' => 'path/to/connector', ) );
####其他特殊配置
此模块可根据您的需求理解和尊重不同的配置、挂载点和设置。这全部通过配置完成。例如,CKEditor使用一个特殊的标志来上传图像。因此,我们设置了一个仅允许上传图像的图像文件夹。
要设置不同的配置,您需要打开应用程序或项目配置文件,并添加以下内容
return array( 'elfinder' => array( 'mounts' => array( //Set Name for this configuration 'myNewFileTypeOrConfigName' => array( //Mount point definition goes here. //Minimum config below. See ElFinders "Connector //configuration options" for more info 'myNewMountPoint' => array ( //Mount point definition goes here. //Minimum config below. See ElFinders "Connector //configuration options" for more info 'roots' => array( 'driver' => 'LocalFileSystem', 'path' => '/path/to/files/', 'URL' => 'http://localhost/to/files/' ), ), ), ), ), );
完成以上步骤后,根据上述说明设置ElFinder的视图,只有一个例外。您需要将新的定义或类型添加到ElFinder的URL或路由中。如果使用上述示例,此实例的ElFinder的新URL将是/elfinder/images
##设置MySql连接器以使用Zend DB或至少将当前DB设置传递给ElFinder的MySql连接器类。
设置MySql连接器以使用Doctrine ORM模块或至少在使用Doctrine时传递当前DB设置。
elFinder
_ ______ _ _ | | ____(_) | | ___| | |__ _ _ __ __| | ___ _ __ / _ \ | __| | | '_ \ / _` |/ _ \ '__| | __/ | | | | | | | (_| | __/ | \___|_|_| |_|_| |_|\__,_|\___|_|
elFinder是一个基于JavaScript和jQuery UI的开源网络文件管理器。它的设计灵感来自Mac OS X操作系统中使用的Finder程序的简洁和便利。
功能
- 在远程服务器上对文件和文件夹的所有操作(复制、移动、上传、创建文件夹/文件、重命名等)
- 高性能服务器后端和轻量级客户端UI
- 多根支持
- 本地文件系统、MySQL、FTP卷存储驱动程序
- 带有拖放HTML5支持的背景文件上传
- 列表和图标视图
- 键盘快捷键
- 使用鼠标或键盘进行标准文件/组选择的方法
- 使用拖放移动/复制文件
- 创建/提取归档(zip、rar、7z、tar、gzip、bzip2)
- 丰富的上下文菜单和工具栏
- 快速查看和预览常见文件类型
- 编辑文本文件和图像
- "位置"用于您的收藏夹
- 计算目录大小
- 图像文件的缩略图
- 易于与网络编辑器(elRTE、CKEditor、TinyMCE)集成
- 灵活配置访问权限、上传文件类型、用户界面等
- 可扩展性
- 基于JSON的简单客户端-服务器API
要求
客户端
- 现代浏览器。elFinder在Firefox 10、Internet Explorer 8+、Safari 5、Opera 11和Chrome 15+上进行测试
服务器
- 任何网络服务器
- PHP 5.2+(用于缩略图 - mogrify工具或GD/Imagick模块)
第三方连接器
支持
作者
- 首席开发者:Dmitry "dio" Levashov dio@std42.ru
- 维护者:Troex Nevelin troex@fury.scancode.ru
- 开发者:Alexey Sukhotin strogg@yandex.ru,Naoki Sawada hypweb@gmail.com
- 图标:PixelMixer,Yusuke Kamiyamane
希望我们的工具对您有所帮助。
许可证
elFinder遵循3条款BSD许可证发布。
Copyright (c) 2009-2012, Studio 42 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Studio 42 Ltd. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL "STUDIO 42" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.