mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-19 00:22:15 +00:00
Generate multiple avatar sizes
This commit is contained in:
@@ -17,6 +17,7 @@ use Domain\Pages\Actions\SeedDefaultPagesAction;
|
||||
use Domain\Settings\Actions\SeedDefaultSettingsAction;
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
||||
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
|
||||
class SetupDevEnvironment extends Command
|
||||
{
|
||||
@@ -99,10 +100,12 @@ class SetupDevEnvironment extends Command
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
|
||||
$avatar_name = $this->generate_avatar('avatar-01.png');
|
||||
|
||||
$user
|
||||
->settings()
|
||||
->create([
|
||||
'avatar' => 'avatars/avatar-01.png',
|
||||
'avatar' => $avatar_name,
|
||||
'storage_capacity' => 5,
|
||||
'name' => 'Jane Doe',
|
||||
'address' => $this->faker->address,
|
||||
@@ -114,8 +117,6 @@ class SetupDevEnvironment extends Command
|
||||
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
|
||||
]);
|
||||
|
||||
Storage::putFileAs('avatars', storage_path('demo/avatars/avatar-01.png'), 'avatar-01.png', 'private');
|
||||
|
||||
// Show user credentials
|
||||
$this->info('Default admin account created. Email: howdy@hi5ve.digital and Password: vuefilemanager');
|
||||
}
|
||||
@@ -158,10 +159,12 @@ class SetupDevEnvironment extends Command
|
||||
'email_verified_at' => now(),
|
||||
]);
|
||||
|
||||
$avatar_name = $this->generate_avatar($user['avatar']);
|
||||
|
||||
$newbie
|
||||
->settings()
|
||||
->create([
|
||||
'avatar' => "avatars/{$user['avatar']}",
|
||||
'avatar' => $avatar_name,
|
||||
'storage_capacity' => 5,
|
||||
'name' => $this->faker->name,
|
||||
'address' => $this->faker->address,
|
||||
@@ -173,8 +176,6 @@ class SetupDevEnvironment extends Command
|
||||
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
|
||||
]);
|
||||
|
||||
Storage::putFileAs('avatars', storage_path("demo/avatars/{$user['avatar']}"), $user['avatar'], 'private');
|
||||
|
||||
$this->info("Generated user with email: $newbie->email and Password: vuefilemanager");
|
||||
});
|
||||
}
|
||||
@@ -1119,4 +1120,33 @@ class SetupDevEnvironment extends Command
|
||||
$this->call('config:clear');
|
||||
$this->call('view:clear');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $avatar
|
||||
* @return string
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
private function generate_avatar($avatar): string
|
||||
{
|
||||
$image = \Illuminate\Support\Facades\File::get(storage_path("/demo/avatars/{$avatar}"));
|
||||
|
||||
// Create avatar name
|
||||
$avatar_name = Str::uuid() . '.png';
|
||||
|
||||
// Create intervention image
|
||||
$img = Image::make($image);
|
||||
|
||||
// Generate avatar
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($img, $image, $avatar_name) {
|
||||
|
||||
// fit thumbnail
|
||||
$img->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $img);
|
||||
});
|
||||
|
||||
return $avatar_name;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user