Skip to content

Commit

Permalink
Creating a @thumbnail blade directive
Browse files Browse the repository at this point in the history
  • Loading branch information
nWidart committed Jul 6, 2017
1 parent 1b7a485 commit b491b1d
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 1 deletion.
13 changes: 13 additions & 0 deletions Modules/Media/Blade/Facades/MediaThumbnailDirective.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Modules\Media\Blade\Facades;

use Illuminate\Support\Facades\Facade;

class MediaThumbnailDirective extends Facade
{
protected static function getFacadeAccessor()
{
return 'media.thumbnail.directive';
}
}
44 changes: 44 additions & 0 deletions Modules/Media/Blade/MediaThumbnailDirective.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace Modules\Media\Blade;

use Modules\Media\Image\Imagy;

class MediaThumbnailDirective
{
/**
* @var string
*/
private $path;
/**
* @var string
*/
private $thumbnail;

/**
* @var Imagy
*/
private $imagy;

public function __construct()
{
$this->imagy = app(Imagy::class);
}

public function show($arguments)
{
$this->extractArguments($arguments);

return $this->imagy->getThumbnail($this->path, $this->thumbnail);
}

/**
* Extract the possible arguments as class properties
* @param array $arguments
*/
private function extractArguments(array $arguments)
{
$this->path = array_get($arguments, 0);
$this->thumbnail = array_get($arguments, 1);
}
}
7 changes: 7 additions & 0 deletions Modules/Media/Providers/MediaServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Modules\Core\Traits\CanPublishConfiguration;
use Modules\Media\Blade\MediaMultipleDirective;
use Modules\Media\Blade\MediaSingleDirective;
use Modules\Media\Blade\MediaThumbnailDirective;
use Modules\Media\Console\RefreshThumbnailCommand;
use Modules\Media\Contracts\DeletingMedia;
use Modules\Media\Contracts\StoringMedia;
Expand Down Expand Up @@ -46,6 +47,9 @@ public function register()
$this->app->bind('media.multiple.directive', function () {
return new MediaMultipleDirective();
});
$this->app->bind('media.thumbnail.directive', function () {
return new MediaThumbnailDirective();
});
}

public function boot(DispatcherContract $events)
Expand Down Expand Up @@ -143,5 +147,8 @@ private function registerBladeTags()
$this->app['blade.compiler']->directive('mediaMultiple', function ($value) {
return "<?php echo MediaMultipleDirective::show([$value]); ?>";
});
$this->app['blade.compiler']->directive('thumbnail', function ($value) {
return "<?php echo MediaThumbnailDirective::show([$value]); ?>";
});
}
}
3 changes: 2 additions & 1 deletion Modules/Media/module.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
"Imagy": "Modules\\Media\\Image\\Facade\\Imagy",
"FileHelper": "Modules\\Media\\Helpers\\FileHelper",
"MediaSingleDirective": "Modules\\Media\\Blade\\Facades\\MediaSingleDirective",
"MediaMultipleDirective": "Modules\\Media\\Blade\\Facades\\MediaMultipleDirective"
"MediaMultipleDirective": "Modules\\Media\\Blade\\Facades\\MediaMultipleDirective",
"MediaThumbnailDirective": "Modules\\Media\\Blade\\Facades\\MediaThumbnailDirective"
},
"files": [
]
Expand Down

0 comments on commit b491b1d

Please sign in to comment.