{"id":14983957,"url":"https://github.com/helios-ag/fmelfinderbundle","last_synced_at":"2025-05-14T06:14:13.124Z","repository":{"id":40687772,"uuid":"5328565","full_name":"helios-ag/FMElfinderBundle","owner":"helios-ag","description":":file_folder: ElFinderBundle provides ElFinder integration with TinyMCE, CKEditor, Summernote editors","archived":false,"fork":false,"pushed_at":"2025-03-14T14:36:45.000Z","size":1423,"stargazers_count":277,"open_issues_count":19,"forks_count":130,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-11T01:41:49.671Z","etag":null,"topics":["bundle","ckeditor","elfinder","php","symfony","symfony-bundle","tinymce"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helios-ag.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":"https://paypal.me/heliosag"}},"created_at":"2012-08-07T13:59:28.000Z","updated_at":"2025-04-04T10:11:24.000Z","dependencies_parsed_at":"2023-02-15T15:31:05.545Z","dependency_job_id":"b55b20ab-4afc-40d2-be38-30dcc2bf96fb","html_url":"https://github.com/helios-ag/FMElfinderBundle","commit_stats":{"total_commits":482,"total_committers":84,"mean_commits":5.738095238095238,"dds":0.3278008298755186,"last_synced_commit":"69440f1e10281adca2077356ed37a8edd173db3e"},"previous_names":[],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helios-ag%2FFMElfinderBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helios-ag%2FFMElfinderBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helios-ag%2FFMElfinderBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helios-ag%2FFMElfinderBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helios-ag","download_url":"https://codeload.github.com/helios-ag/FMElfinderBundle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254083858,"owners_count":22011902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bundle","ckeditor","elfinder","php","symfony","symfony-bundle","tinymce"],"created_at":"2024-09-24T14:08:14.324Z","updated_at":"2025-05-14T06:14:13.093Z","avatar_url":"https://github.com/helios-ag.png","language":"PHP","funding_links":["https://paypal.me/heliosag"],"categories":[],"sub_categories":[],"readme":"FMElfinderBundle\n================\n\n[ElFinder](https://github.com/Studio-42/elFinder) integration in Symfony\n\n### Code Quality Assurance ###\n\nProudly developed with [![PhpStorm](https://img.shields.io/badge/phpstorm-143?style=for-the-badge\u0026logo=phpstorm\u0026logoColor=black\u0026color=black\u0026labelColor=darkorchid)](https://www.jetbrains.com/phpstorm/)\n\n| Tests | Coverage| License | Version |\n|-------------|-----------------|-----------------|----------------|\n|[![Tests - Linux](https://github.com/helios-ag/FMElfinderBundle/actions/workflows/test.yaml/badge.svg)](https://github.com/helios-ag/FMElfinderBundle/actions/workflows/test.yaml)|[![Coverage Status](https://coveralls.io/repos/helios-ag/FMElfinderBundle/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/helios-ag/FMElfinderBundle?branch=master)|[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)|[![Latest Stable Version](https://poser.pugx.org/helios-ag/fm-elfinder-bundle/v/stable.svg)](https://packagist.org/packages/helios-ag/fm-elfinder-bundle)|\n\n\n| Downloads |\n|----------|\n|[![Total Downloads](https://poser.pugx.org/helios-ag/fm-elfinder-bundle/downloads.svg)](https://packagist.org/packages/helios-ag/fm-elfinder-bundle)|\n\n\n**elFinder** is an open-source file manager for web, written in JavaScript using jQuery UI.\nCreation is inspired by simplicity and convenience of Finder program used in Mac OS X operating system.\n\nRecommended bundles to use with:\n\n\n| FMTinyMCEBundle | FOSCKEditorBundle | FMSummernoteBundle |\n| ------------------------|-------------|-----------------|\n|[![FMTinyMCEBundle](https://img.shields.io/badge/FMTinyMCEBundle-download-brightgreen.svg)](https://github.com/helios-ag/FMTinyMCEBundle)|[![FOSCKEditorBundle](https://img.shields.io/badge/FOSCKEditorBundle-download-orange.svg)](https://github.com/FriendsOfSymfony/FOSCKEditorBundle)|[![FMSummernoteBundle](https://img.shields.io/badge/FMSummernoteBundle-download-brightgreen.svg)](https://github.com/helios-ag/summernote-bundle)|\n\n\n**Table of contents**\n\n- [Installation](#installation)\n  - [Step 1: Installation](#step-1-installation)\n  - [Step 2: Enable the bundle](#step-2-enable-the-bundle-optional)\n  - [Step 3: Import FMElfinderBundle routing file](#step-3-import-fmelfinderbundle-routing-file)\n  - [Step 4: Securing paths](#step-4-configure-your-applications-securityyaml)\n- [Basic configuration](#basic-configuration)\n  - [Add configuration options to your config.yaml](#add-configuration-options-to-your-configyaml)\n  - [Use multiple upload folder by instance](#use-multiple-upload-folder-by-instance)\n- [CORS support](/docs/cors-support.md)\n- [Events listeners / subscribers](/docs/events-listeners-subscribers.md)\n  - [Events](/docs/events-listeners-subscribers.md#events)\n  - [Sub requests](/docs/events-listeners-subscribers.md#sub-requests)\n- [Elfinder Form Type](/docs/elfinder-form-type.md)\n  - [Configuration](/docs/elfinder-form-type.md#configuration)\n  - [EasyAdmin 2.x](/docs/elfinder-form-type.md#easyadmin-2x-integration)\n  - [EasyAdmin 3.x/4.x](/docs/elfinder-form-type.md#easyadmin-3x/4x-integration)\n- [CKEditor integration](/docs/ckeditor-integration.md)\n  - [Installation](/docs/ckeditor-integration.md#step-1-installation)\n  - [Configuration](/docs/ckeditor-integration.md#step-2-configure-ckeditor-setting-via-settingsyml-or-through-form-builder)\n- [TinyMCE integration](/docs/tinymce-integration.md)\n  - [Integration with TinyMCE 3](/docs/tinymce-integration.md#tinymce-3x)\n  - [Integration with TinyMCE 4](/docs/tinymce-integration.md#tinymce-4x)\n- [Summernote integration](/docs/summernote-integration.md)\n- [Advanced configuration](/docs/advanced-configuration.md)\n  - [Custom configuration provider](/docs/advanced-configuration.md#custom-configuration-provider)\n  - [Custom loader](/docs/advanced-configuration.md#custom-loader)\n  - [Plugins](/docs/advanced-configuration.md#plugins)\n  - [Service as volume driver](/docs/advanced-configuration.md#symfony-service-as-a-volume-driver)\n  - [Flysystem configuration](/docs/advanced-configuration.md#flysystem-configuration)\n- [Configuration dump](/docs/configuration-dump.md)\n\n## Installation\n\n### Step 1: Installation\n\nFor Symfony Flex installation you need to enable community recipes:\n\n```sh\n  composer config extra.symfony.allow-contrib true\n```\n\nInstall\n\n```sh\n  composer require helios-ag/fm-elfinder-bundle\n```\n\nCopy elfinder assets to public folder\n\n```sh\n  bin/console elfinder:install\n```\n\n\n### Step 2: Enable the bundle (Optional)\n\nEnable the bundle in the kernel (not needed with symfony flex):\n\n```php\n\u003c?php\n// app/AppKernel.php\n\npublic function registerBundles()\n{\n    $bundles = array(\n        // ...\n        new FM\\ElfinderBundle\\FMElfinderBundle(),\n    );\n}\n```\n\n### Step 3: Import FMElfinderBundle routing file\n\n``` yaml\n# app/config/routing.yaml\nelfinder:\n     resource: \"@FMElfinderBundle/Resources/config/routing.yaml\"\n```\n\n### Step 4: Configure your application's security.yaml\n\nSecure ElFinder with access_control:\n``` yaml\n# app/config/security.yaml\nsecurity:\n\n    //....\n    access_control:\n        - { path: ^/efconnect, role: ROLE_USER }\n        - { path: ^/elfinder, role: ROLE_USER }\n\n```\n\n## Basic configuration\n\n### Add configuration options to your config.yaml\n\n```yaml\nfm_elfinder:\n    #assets_path: / # default is /assets, this is where css/js elfinder files are\n    instances:\n        default:\n            locale: '%locale%' # defaults to current request locale\n            editor: ckeditor # other options are tinymce, tinymce4, fm_tinymce, form, simple, custom\n            relative_path: false #default true, will produce absolute urls to specified file(s)\n            #editor_template: custom template for your editor # default null\n            #path_prefix: / # for setting custom assets path prefix, useful for non vhost configurations, i.e. http://127.0.0.1/mysite/\n            #fullscreen: true|false # default is true, applies to simple and ckeditor editors\n            #theme: smoothness # jquery theme, default is 'smoothness'\n            #visible_mime_types: ['image/png', 'image/jpg', 'image/jpeg'] # only show these mime types, defaults to show all\n            connector:\n                #debug: true|false # defaults to false\n                roots:       # at least one root must be defined, defines root filemanager directories\n                    uploads:\n                        #show_hidden: true|false # defaults to false, hides dotfiles\n                        driver: LocalFileSystem\n                        path: uploads\n                        upload_allow: ['image/png', 'image/jpg', 'image/jpeg']\n                        upload_deny: ['all']\n                        upload_max_size: 2M # also file upload sizes restricted in php.ini\n                        #attributes: example of setting attributes permission\n                        #    - { pattern: '/(.*?)/', read: true, write: false, locked: true }\n```\n* **default** - instance of elfinder, can be used to define multiple configurations of ElFinder, allows simultaneous configuration for different types of WYSIWYG editors in your project\n* **path** - define root directory for the files inside web/ directory, default is \"uploads\". Make sure to set proper write/read and owner permissions to this directory.\n* **url** - url to be prefixed to image path, for displaying. Can be either `absolute` or `relative`. If absolute, you can use `{homeFolder}` string as placeholder which will be replaced automatically. If relative, it will be prefixed with the applications base-url. If left blank, url will be the base-url, append with the value of the 'path' parameter\n* **driver** - can be LocalFileSystem, FTP or MySQL, Flysystem, S3 and etc, check class FM\\ElfinderBundle\\DependencyInjection\\Configuration\n* **locale** - locale determines, which language, ElFinder will use, to translate user interface, default is current request locale\n* **cors_support** - allows cross domain responses handling (default false)\n* **editor** - determines what template to render, to be compatible with WYSIWYG web editor, currently supported options are:\n  \"ckeditor\" (to use with FOSCKEditorBundle or TrsteelCkeditorBundle), \"fm_tinymce\" for tinymce4 (to use with FMTinyMCEBundle), \"form\" for form type, \"simple\" for standalone and \"custom\" for custom template.\n  How to configure CKEDitor and TinyMCE to work with this bundle, will be explained further in this document.\n* **editor_template** - define template to render when editor is set to \"custom\".\n* **connector** - root node for defining options for elfinder root directories.\n* **roots** - define \"virtual directories\" that reflect directories in your project.\n* **path_prefix** - path prefix with relative_path enabled, default is slash ('/')\n* **show_hidden** - show files and folders that starts from . (dot)\n* **driver** - driver type, LocalFileSystem, Dropbox, FTP\n* **volume_id** - (optional) can be used to force a volume id when mounting volume (default auto-increments). If provided, it must be an integer bigger than 0.\n* **alias** - directory alias\n* **path** - directory that contains files\n* **upload_allow**: ['image/png', 'image/jpg', 'image/jpeg']\n* **upload_deny**: ['all']\n* **upload_max_size**: 2M\n\nYou can see the full list of roots options [here](https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options#root-options \"connector options list\"). To use them,\nconvert camelCased option name to snake_case name.\n\n### Use multiple upload folder by instance\n\nYou can set multiple upload root folder by instance configuration.\n\nIf you have configured your instance with `/uploads` path, you can provide\nan additional folder as a home folder (e.g. for a multi-users application) when accessing to the instance URL :\n\n`/elfinder/{instance}/{homeFolder}` or `/efconnect/{instance}/{homeFolder}`\n\nFor example, accessing to `/elfinder/acmeInstance/bob` URL will open up elfinder with\n`/uploads/bob` as root directory which only contains Bob's files.\n\nThen, accessing to `/elfinder/acmeInstance/alice` URL will re-use your instance,\nbut open up elfinder with `/uploads/alice` folder as root directory, containing only Alice's files.\n\nTo use this feature, you **must** provide the instance name in the URL,\nand of course be sure to set proper write/read permissions on home folders.\n\n**Note:** this feature is only available with `LocalFileSystem` driver.\n\n\n## If I want more one home folder is possible ?\n\nYes you can with this configuration in your fm_elfinder.yaml\n\n```yaml\nwhere_is_multi:\n    {connector}: {index of the connector}\nmulti_home_folder: true\nfolder_separator: {one char other of /}\n```\n\n### Example\n```\nfm_elfinder:\n    instances:\n        default:\n            locale: fr # defaults to current request locale\n            editor: ckeditor # other options are tinymce, tinymce4, fm_tinymce, form, simple, custom\n            #editor_template: custom template for your editor # default null\n            #path_prefix: http://localhost/ # for setting custom assets path prefix, useful for non vhost configurations, i.e. http://127.0.0.1/mysite/\n            fullscreen: false # default is true, applies to simple and ckeditor editors\n            where_is_multi:\n                roots: 0\n            multi_home_folder: true\n            folder_separator: \"|\"\n            #theme: smoothness # jquery theme, default is 'smoothness'\n            #visible_mime_types: ['image/png', 'image/jpg', 'image/jpeg'] # only show these mime types, defaults to show all\n            connector:\n                #debug: true|false # defaults to false\n                roots:       # at least one root must be defined, defines root filemanager directories\n                    uploads:\n                        #show_hidden: true|false # defaults to false, hides dotfiles\n                        driver: LocalFileSystem\n                        path: \"/var\"\n                        alias: Bibliothèque générale\n                        upload_allow: ['all']\n                        #upload_deny: ['all']\n                        upload_max_size: 500M # also file upload sizes restricted in php.ini\n                        attributes:\n                            - {pattern: '..', read: true, write: true, locked: false}\n                        #attributes: example of setting attributes permission\n                        #    - { pattern: '/(.*?)/', read: true, write: false, locked: true }\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelios-ag%2Ffmelfinderbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelios-ag%2Ffmelfinderbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelios-ag%2Ffmelfinderbundle/lists"}