Add thumbs views in datatables with traits

This commit is contained in:
Ludovic CANDELLIER
2021-11-01 18:37:25 +01:00
parent ae20643879
commit 900da34b57
17 changed files with 127 additions and 106 deletions

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Traits;
namespace App\Traits\Model;
trait CanComment
{

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Traits;
namespace App\Traits\Model;
use Illuminate\Database\Eloquent\Model;
use App\Contracts\Commentator;

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Traits\Model;
use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\MediaLibrary\InteractsWithMedia;
use App\Repositories\Core\Medias;
trait Imageable
{
use InteractsWithMedia;
public function images()
{
return $this->hasMany('App\Models\Core\Media', 'model_id')->where('model_type', get_class($this));
}
public function image()
{
return $this->hasOne('App\Models\Core\Media', 'model_id')->where('model_type', get_class($this));
}
public function registerMediaConversions(Media $media = null) : void
{
$this->addMediaConversion('thumb')->fit(Manipulations::FIT_CROP, 32, 32);
$this->addMediaConversion('mini')->fit(Manipulations::FIT_CROP, 96, 96);
$this->addMediaConversion('preview')->fit(Manipulations::FIT_CROP, 160, 160);
$this->addMediaConversion('normal')->fit(Manipulations::FIT_CROP, 480, 480);
// $this->addMediaConversion('zoom')->fit(Manipulations::FIT_CROP, 1200, 1200)->withResponsiveImages();
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Traits\Repository;
use App\Repositories\Core\Medias;
trait Imageable
{
public static function storeImages($variety, $files)
{
return Medias::storeImages($variety, $files);
}
public static function getImages($id)
{
return Medias::getImages(self::get($id));
}
public static function getThumb($image)
{
return '<img src="' . self::getThumbSrc($image) . '">';
}
public static function getThumbSrc($image)
{
return Medias::getThumbSrc($image);
}
public static function getPreview($image)
{
return '<img src="' . self::getPreviewSrc($image) . '">';
}
public static function getPreviewSrc($image)
{
return Medias::getPreviewSrc($image);
}
public static function deleteImage($id, $index)
{
return Medias::deleteImage(self::get($id), $index);
}
}