Skip to content

Commit ef146dc

Browse files
committed
Remove old media manager and replace with new media using elFinder..
1 parent 4f75b33 commit ef146dc

File tree

149 files changed

+43007
-1155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+43007
-1155
lines changed

composer.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"require": {
1313
"php": ">=5.6.0",
1414
"illuminate/html": "^5.0@dev",
15-
"intervention/image": "^2.3@dev"
15+
"intervention/image": "^2.3@dev",
16+
"studio-42/elfinder": "~2.1.10"
1617
},
1718
"require-dev": {
1819
},

src/Darryldecode/Backend/BackendServiceProvider.php

+10-12
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,6 @@ public function boot()
1717
$this->loadViewsFrom(__DIR__.'/Base/Views', 'backend');
1818
$this->bootBackend();
1919

20-
// $this->app['router']->middleware(
21-
// 'backend.guest',
22-
// 'Darryldecode\Backend\Base\Middleware\RedirectIfAuthenticated'
23-
// );
24-
//
25-
// $this->app['router']->middleware(
26-
// 'backend.authenticated',
27-
// 'Darryldecode\Backend\Base\Middleware\Authenticate'
28-
// );
29-
3020
$this->publishes([
3121
__DIR__.'/Public/backend/cb' => public_path('darryldecode/backend/cb'),
3222
__DIR__.'/Public/backend/vendor' => public_path('darryldecode/backend/vendor'),
@@ -51,12 +41,20 @@ public function boot()
5141
*/
5242
public function bootBackend()
5343
{
44+
$disabled_components = [];
45+
$options = array(
46+
'disabled_components' => array_merge(
47+
$disabled_components,
48+
($this->app['config']->get('backend.backend.disabled_components')) ? $this->app['config']->get('backend.backend.disabled_components') : []
49+
)
50+
);
51+
5452
// load built-in components
55-
$componentLoader = new ComponentLoader(__DIR__.'/Components', new Filesystem());
53+
$componentLoader = new ComponentLoader(__DIR__.'/Components', new Filesystem(),$options);
5654
$builtInComponents = $componentLoader->getAvailableComponentInstances();
5755

5856
// load custom components
59-
$componentLoader = new ComponentLoader(app_path().'/Backend/Components', new Filesystem());
57+
$componentLoader = new ComponentLoader(app_path().'/Backend/Components', new Filesystem(),$options);
6058
$customComponents = $componentLoader->getAvailableComponentInstances();
6159

6260
// add those loaded components to backend registrar

src/Darryldecode/Backend/Base/Registrar/ComponentLoader.php

+17-5
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,23 @@ class ComponentLoader {
2727
*/
2828
protected $componentInterface = 'Darryldecode\Backend\Base\Registrar\ComponentInterface';
2929

30+
/**
31+
* List of options
32+
*
33+
* @var array
34+
*/
35+
protected $options = [];
36+
3037
/**
3138
* @param $path
3239
* @param Filesystem $filesystem
40+
* @param array $options [disabled_components => ['Component Name']]
3341
*/
34-
public function __construct($path, Filesystem $filesystem)
42+
public function __construct($path, Filesystem $filesystem, array $options = [])
3543
{
3644
$this->path = $path;
3745
$this->filesystem = $filesystem;
46+
$this->options = $options;
3847
}
3948

4049
/**
@@ -67,10 +76,13 @@ protected function extractComponentInstances()
6776

6877
if( $componentInstance instanceof ComponentInterface )
6978
{
70-
array_push(
71-
$componentInstances,
72-
$componentInstance
73-
);
79+
if(!in_array($componentInstance->getComponentInfo()['name'],$this->options['disabled_components']))
80+
{
81+
array_push(
82+
$componentInstances,
83+
$componentInstance
84+
);
85+
}
7486
}
7587
}
7688
}

src/Darryldecode/Backend/Base/Views/includes/scripts.blade.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<script type="text/javascript" src="/darryldecode/backend/vendor/bootstrap-markdown-2.8.0/to-markdown.js"></script>
2727
<script type="text/javascript" src="/darryldecode/backend/vendor/bootstrap-markdown-2.8.0/bootstrap-markdown.js"></script>
2828
<script type="text/javascript" src="/darryldecode/backend/vendor/fancybox/jquery.fancybox.pack.js"></script>
29+
<script type="text/javascript" src="/darryldecode/backend/vendor/elFinder-2.1.23/js/elfinder.min.js"></script>
2930
<script type="text/javascript" src="/darryldecode/backend/cb/js/backend.js"></script>
3031

3132
<script type="text/javascript" src="/darryldecode/backend/cb/app/common/directives/angular-boostrap-switch.js"></script>
@@ -58,9 +59,9 @@
5859
<script type="text/javascript" src="/darryldecode/backend/cb/app/contents/controller.contents.js"></script>
5960
<script type="text/javascript" src="/darryldecode/backend/cb/app/contents/modals/controller.gallery.js"></script>
6061

61-
<script type="text/javascript" src="/darryldecode/backend/cb/app/media-manager/media-manager.js"></script>
62-
<script type="text/javascript" src="/darryldecode/backend/cb/app/media-manager/factory.js"></script>
63-
<script type="text/javascript" src="/darryldecode/backend/cb/app/media-manager/controller.manage.js"></script>
62+
<script type="text/javascript" src="/darryldecode/backend/cb/app/media/media.js"></script>
63+
<script type="text/javascript" src="/darryldecode/backend/cb/app/media/factory.js"></script>
64+
<script type="text/javascript" src="/darryldecode/backend/cb/app/media/controller.manage.js"></script>
6465

6566
<script type="text/javascript" src="/darryldecode/backend/cb/app/custom-fields/custom-fields.js"></script>
6667
<script type="text/javascript" src="/darryldecode/backend/cb/app/custom-fields/factory.js"></script>

src/Darryldecode/Backend/Base/Views/includes/styles.blade.php

+5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
<link type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.css" />
1818
<link type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/selectize.js/0.8.5/css/selectize.default.css" />
1919

20+
<!-- elFinder -->
21+
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/elFinder-2.1.23/css/elfinder.min.css" />
22+
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/elFinder-2.1.23/css/theme-bootstrap-libreicons-svg.css" />
23+
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/elFinder-2.1.23/css/theme-bootstrap-libreicons-svg-overrides.css" />
24+
2025
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/bootstrap-markdown-2.8.0/bootstrap-markdown.min.css" />
2126
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/font-awesome-4.3.0/css/font-awesome.min.css" />
2227
<link type="text/css" rel="stylesheet" href="/darryldecode/backend/vendor/animatecss/animate.css" />

src/Darryldecode/Backend/Components/MediaManager/Component.php renamed to src/Darryldecode/Backend/Components/Media/Component.php

+7-12
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Time: 1:49 PM
77
*/
88

9-
namespace Darryldecode\Backend\Components\MediaManager;
9+
namespace Darryldecode\Backend\Components\Media;
1010

1111
use Darryldecode\Backend\Base\Registrar\ComponentInterface;
1212
use Darryldecode\Backend\Base\Registrar\ComponentNavigation;
@@ -22,8 +22,8 @@ class Component implements ComponentInterface {
2222
public function getComponentInfo()
2323
{
2424
return array(
25-
'name' => 'Media Manager',
26-
'description' => 'A simple media manager to manage you files',
25+
'name' => 'Media',
26+
'description' => 'A simple media component to manage your files',
2727
);
2828
}
2929

@@ -39,12 +39,7 @@ public function getAvailablePermissions()
3939
'title' => 'Manage Media',
4040
'description' => 'Enable\'s the user to manage media. This includes access, uploads and modification capabilities',
4141
'permission' => 'media.manage',
42-
),
43-
array(
44-
'title' => 'Delete A Media',
45-
'description' => 'Gives the user authorization to perform delete action in Media Manager, this includes deleting a folder/file.',
46-
'permission' => 'media.delete',
47-
),
42+
)
4843
);
4944

5045
return $availablePermissions;
@@ -57,7 +52,7 @@ public function getAvailablePermissions()
5752
*/
5853
public function getNavigation()
5954
{
60-
$mediaManager = new ComponentNavigation('Media Manager','fa fa-files-o',url(config('backend.backend.base_url').'/media_manager'));
55+
$mediaManager = new ComponentNavigation('Media','fa fa-files-o',url(config('backend.backend.base_url').'/media'));
6156
$mediaManager->setRequiredPermissions(['media.manage']);
6257

6358
$navCollection = new ComponentNavigationCollection();
@@ -75,7 +70,7 @@ public function getViewsPath()
7570
{
7671
return array(
7772
'dir' => __DIR__.'/Views',
78-
'namespace' => 'mediaManager',
73+
'namespace' => 'media',
7974
);
8075
}
8176

@@ -88,7 +83,7 @@ public function getRoutesControl()
8883
{
8984
return array(
9085
'dir' => __DIR__.'/routes.php',
91-
'namespace' => 'Darryldecode\\Backend\\Components\\MediaManager\\Controllers',
86+
'namespace' => 'Darryldecode\\Backend\\Components\\Media\\Controllers',
9287
);
9388
}
9489

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: darryl
5+
* Date: 2/4/2015
6+
* Time: 7:57 PM
7+
*/
8+
9+
namespace Darryldecode\Backend\Components\Media\Controllers;
10+
11+
use Darryldecode\Backend\Base\Controllers\BaseController;
12+
use Illuminate\Http\Request;
13+
use Illuminate\Contracts\Routing\ResponseFactory as Response;
14+
use elFinder;
15+
use elFinderConnector;
16+
17+
class MediaController extends BaseController {
18+
19+
/**
20+
* @var
21+
*/
22+
private $request;
23+
/**
24+
* @var
25+
*/
26+
private $response;
27+
28+
/**
29+
* @param Request $request
30+
* @param Response $response
31+
*/
32+
public function __construct(Request $request, Response $response)
33+
{
34+
parent::__construct();
35+
$this->middleware('backend.authenticated');
36+
$this->request = $request;
37+
$this->response = $response;
38+
}
39+
40+
/**
41+
* index media manager
42+
*
43+
* @return \Illuminate\View\View|\Symfony\Component\HttpFoundation\Response
44+
*/
45+
public function index()
46+
{
47+
$this->triggerBeforeBackendHook();
48+
return view('media::media');
49+
}
50+
51+
/**
52+
* the elFinder handle
53+
*/
54+
public function elFinder()
55+
{
56+
elFinder::$netDrivers['ftp'] = 'FTP';
57+
58+
// Documentation for connector options:
59+
// https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options
60+
$opts = array(
61+
'debug' => true,
62+
'roots' => array(
63+
array(
64+
'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
65+
'path' => storage_path('app/public'), // path to files (REQUIRED)
66+
'URL' => public_path('storage'), // URL to files (REQUIRED)
67+
'uploadDeny' => config('backend.backend.upload_rules.uploadDeny'), // All Mimetypes not allowed to upload
68+
'uploadAllow' => config('backend.backend.upload_rules.uploadAllow'), // Mimetype `image` and `text/plain` allowed to upload
69+
'uploadOrder' => config('backend.backend.upload_rules.uploadOrder'), // allowed Mimetype `image` and `text/plain` only
70+
'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL)
71+
)
72+
)
73+
);
74+
75+
// run elFinder
76+
$connector = new elFinderConnector(new elFinder($opts));
77+
$connector->run();
78+
}
79+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
@extends('backend::layouts.master')
2+
3+
@section('content')
4+
<div data-ng-controller="MediaController" id="inner-content" class="animated fadeIn">
5+
6+
<!-- list files types -->
7+
<div class="panel panel-default">
8+
<div class="panel-body">
9+
<div class="row view-header">
10+
<div class="col-lg-6 col-md-6">
11+
<h3>
12+
<i class="fa fa-files-o"></i> MEDIA
13+
</h3>
14+
</div>
15+
<div class="col-lg-6 col-md-6">
16+
17+
</div>
18+
</div>
19+
<div class="row">
20+
<div class="col-lg-12">
21+
<div id="elfinder"></div>
22+
</div>
23+
</div>
24+
</div>
25+
</div>
26+
<!-- /list files types -->
27+
28+
</div>
29+
@stop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
Route::group(array('prefix'=> 'media'), function()
4+
{
5+
Route::get('/', array(
6+
'before' => array(),
7+
'as' => 'backend.media',
8+
'uses' => 'MediaController@index'
9+
));
10+
Route::any('/elFinder', array(
11+
'before' => array(),
12+
'as' => 'backend.media',
13+
'uses' => 'MediaController@elFinder'
14+
));
15+
});

src/Darryldecode/Backend/Components/MediaManager/Commands/DeleteDirectoryCommand.php

-71
This file was deleted.

0 commit comments

Comments
 (0)