1
1
# laravel-filemanager
2
2
3
- PR is welcome.
3
+ A files and images management user interface with file uploading support. (Works well with CKEditor and TinyMCE)
4
+
5
+ PR is welcome!
4
6
5
7
## Overview
6
8
@@ -44,64 +46,88 @@ PR is welcome.
44
46
php artisan vendor:publish --tag=lfm_config
45
47
php artisan vendor:publish --tag=lfm_public
46
48
```
47
-
48
- 1. Implementation:
49
- CKEditor
50
- ```javascript
51
- <script>
52
- CKEDITOR.replace( ' editor' , {
53
- filebrowserImageBrowseUrl: ' /laravel-filemanager? type=Images' ,
54
- filebrowserImageUploadUrl: ' /laravel-filemanager/upload? type=Images& _token={{csrf_token()}}' ,
55
- filebrowserBrowseUrl: ' /laravel-filemanager? type=Files' ,
56
- filebrowserUploadUrl: ' /laravel-filemanager/upload? type=Files& _token={{csrf_token()}}'
57
- });
58
- </script>
49
+
50
+ 1. Ensure that the files & images directories (in `config/lfm.php`) are writable by your web server.
51
+
52
+ ## WYSIWYG Editor Integration:
53
+ ### Option 1: CKEditor
54
+
55
+ 1. Install (laravel-ckeditor)[https://github.com/UniSharp/laravel-ckeditor] package
56
+
57
+ 1. Modify the views
58
+
59
+ Sample 1 - Replace by ID:
60
+ ```html
61
+ <script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
62
+ <textarea id="my-editor" name="content" class="form-control">{!! old(' content' , $content) !!}</textarea>
63
+ <script>
64
+ CKEDITOR.replace( ' my-editor' , {
65
+ filebrowserImageBrowseUrl: ' /laravel-filemanager? type=Images' ,
66
+ filebrowserImageUploadUrl: ' /laravel-filemanager/upload? type=Images& _token={{csrf_token()}}' ,
67
+ filebrowserBrowseUrl: ' /laravel-filemanager? type=Files' ,
68
+ filebrowserUploadUrl: ' /laravel-filemanager/upload? type=Files& _token={{csrf_token()}}'
69
+ });
70
+ </script>
59
71
```
60
-
61
- TinyMCE 4
62
- ```javascript
63
- <script>
64
- var editor_config = {
65
- path_absolute : "http://path_to_filemanager/",
66
- selector: "textarea",
67
- plugins: [
68
- "advlist autolink lists link image charmap print preview hr anchor pagebreak",
69
- "searchreplace wordcount visualblocks visualchars code fullscreen",
70
- "insertdatetime media nonbreaking save table contextmenu directionality",
71
- "emoticons template paste textcolor colorpicker textpattern"
72
- ],
73
- toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media",
74
- relative_urls: false,
75
- file_browser_callback : function(field_name, url, type, win) {
76
- var w = window,
77
- d = document,
78
- e = d.documentElement,
79
- g = d.getElementsByTagName(' body' )[0],
80
- x = w.innerWidth || e.clientWidth || g.clientWidth,
81
- y = w.innerHeight|| e.clientHeight|| g.clientHeight;
82
-
83
- var cmsURL = editor_config.path_absolute + ' filemanager/show? & field_name=' +field_name+' & lang=' + tinymce.settings.language;
84
-
85
- if(type == ' image' ) {
86
- cmsURL = cmsURL + "&type=images";
87
- }
88
-
89
- tinyMCE.activeEditor.windowManager.open({
90
- file : cmsURL,
91
- title : ' Filemanager' ,
92
- width : x * 0.8,
93
- height : y * 0.8,
94
- resizable : "yes",
95
- close_previous : "no"
96
- });
97
- }
98
- };
99
-
100
- tinymce.init(editor_config);
101
- </script>
72
+
73
+ Sample 2 - With JQuery Selector:
74
+
75
+ ```html
76
+ <script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
77
+ <script src="/vendor/unisharp/laravel-ckeditor/adapters/jquery.js"></script>
78
+ <textarea name="content" class="form-control my-editor">{!! old(' content' , $content) !!}</textarea>
79
+ <script>
80
+ $(' textarea.my-editor' ).ckeditor({
81
+ filebrowserImageBrowseUrl: ' /laravel-filemanager? type=Images' ,
82
+ filebrowserImageUploadUrl: ' /laravel-filemanager/upload? type=Images& _token={{csrf_token()}}' ,
83
+ filebrowserBrowseUrl: ' /laravel-filemanager? type=Files' ,
84
+ filebrowserUploadUrl: ' /laravel-filemanager/upload? type=Files& _token={{csrf_token()}}'
85
+ });
86
+ </script>
102
87
```
103
88
104
- 1. Ensure that the files & images directories(in `config/lfm.php`) are writable by your web server
89
+ ### Option 2: TinyMCE4
90
+
91
+ ```html
92
+ <script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
93
+ <textarea name="content" class="form-control my-editor">{!! old(' content' , $content) !!}</textarea>
94
+ <script>
95
+ var editor_config = {
96
+ path_absolute : "/",
97
+ selector: "textarea",
98
+ plugins: [
99
+ "advlist autolink lists link image charmap print preview hr anchor pagebreak",
100
+ "searchreplace wordcount visualblocks visualchars code fullscreen",
101
+ "insertdatetime media nonbreaking save table contextmenu directionality",
102
+ "emoticons template paste textcolor colorpicker textpattern"
103
+ ],
104
+ toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media",
105
+ relative_urls: false,
106
+ file_browser_callback : function(field_name, url, type, win) {
107
+ var x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName(' body' )[0].clientWidth;
108
+ var y = window.innerHeight|| document.documentElement.clientHeight|| document.getElementsByTagName(' body' )[0].clientHeight;
109
+
110
+ var cmsURL = editor_config.path_absolute + ' laravel-filemanager? field_name=' + field_name;
111
+ if (type == ' image' ) {
112
+ cmsURL = cmsURL + "&type=Images";
113
+ } else {
114
+ cmsURL = cmsURL + "&type=Files";
115
+ }
116
+
117
+ tinyMCE.activeEditor.windowManager.open({
118
+ file : cmsURL,
119
+ title : ' Filemanager' ,
120
+ width : x * 0.8,
121
+ height : y * 0.8,
122
+ resizable : "yes",
123
+ close_previous : "no"
124
+ });
125
+ }
126
+ };
127
+
128
+ tinymce.init(editor_config);
129
+ </script>
130
+ ```
105
131
106
132
## Config
107
133
@@ -144,6 +170,7 @@ In `config/lfm.php` :
144
170
145
171
1 . If the route is changed, make sure urls below is correspond to your route :
146
172
173
+ CKEditor
147
174
```javascript
148
175
<script >
149
176
CKEDITOR.replace( 'editor', {
@@ -153,12 +180,17 @@ In `config/lfm.php` :
153
180
</script >
154
181
```
155
182
156
- And be sure to include the ` ?type=Images` or ` ?type=Files` parameter.
183
+ And be sure to include the ` ?type=Images ` or ` ?type=Files ` parameter.
157
184
158
- TinyMCE
185
+ TinyMCE
159
186
```javascript
160
187
...
161
- var cmsURL = editor_config.path_absolute + 'your-custom-route/show?&field_name='+field_name+'&lang='+ tinymce.settings.language;
188
+ var cmsURL = editor_config.path_absolute + 'your-custom-route?field_name='+field_name+'&lang='+ tinymce.settings.language;
189
+ if (type == 'image') {
190
+ cmsURL = cmsURL + "&type=Images";
191
+ } else {
192
+ cmsURL = cmsURL + "&type=Files";
193
+ }
162
194
...
163
195
```
164
196
@@ -180,6 +212,7 @@ In `config/lfm.php` :
180
212
* All contibutors from GitHub. (issues / PR)
181
213
* Special thanks to
182
214
* [@taswler](https://github.com/tsawler) the author.
183
- * [@welcoMattic](https: // github.com/welcoMattic) providing fr locale and lots of bugfixes.
215
+ * [@welcoMattic](https://github.com/welcoMattic) providing fr translations and lots of bugfixes.
216
+ * [@fraterblack](https://github.com/fraterblack) TinyMCE 4 support and pt-BR translations.
184
217
* [@olivervogel](https://github.com/olivervogel) for the awesome [image library](https://github.com/Intervention/image)
185
- * [@UniSharp members](https: // github.com/UniSharp)
218
+ * [All @UniSharp members](https://github.com/UniSharp)
0 commit comments