Initial commit

This commit is contained in:
Developer
2025-04-21 16:03:20 +02:00
commit 2832896157
22874 changed files with 3092801 additions and 0 deletions

View File

@@ -0,0 +1,134 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use League\Glide\ServerFactory;
use App\Domain\Feeds\Models\Feed;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Contracts\Filesystem\Filesystem;
use League\Glide\Responses\LaravelResponseFactory;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
class StaticController extends Controller
{
public function show(Filesystem $filesystem, Request $request, $path)
{
$server = ServerFactory::create([
'response' => new LaravelResponseFactory($request),
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.glide-cache',
'base_url' => 'img',
]);
$server->setPresets([
'small' => [
'w' => 200,
'h' => 200,
'fit' => 'crop',
],
'medium' => [
'w' => 500,
'h' => 500,
'fit' => 'crop',
],
'banner' => [
'w' => 500,
'fit' => 'crop',
],
'hero' => [
'w' => 1600,
'h' => 600,
'fit' => 'crop',
],
]);
return $server->getImageResponse($path, $request->all());
}
public function avatarRemove(Filesystem $filesystem)
{
$user = auth()->user();
$server = ServerFactory::create([
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.glide-cache',
'base_url' => 'img',
]);
Storage::disk('public')->delete($user->photo_path);
$server->deleteCache($user->photo_path);
$user->photo_path = null;
$user->save();
return Redirect::back()->with('success', 'Аватар успешно удален!');
}
public function avatar(Request $request)
{
$user = auth()->user();
request()->validate([
'avatar' => 'required|image|mimes:jpeg,jpg,png|max:1024',
]);
$path = $request->file('avatar')->store('avatars', 'public');
$user->photo_path = $path;
$user->save();
return Redirect::back()->with('success', 'Аватар успешно обновлен!');
}
public function banner(Request $request)
{
$user = auth()->user();
request()->validate([
'banner' => 'required|image|mimes:jpeg,jpg,png|max:2048',
]);
$path = $request->file('banner')->store('banners', 'public');
$user->banner_path = $path;
$user->save();
return Redirect::back()->with('success', 'Баннер успешно обновлен!');
}
public function bannerRemove(Filesystem $filesystem)
{
$user = auth()->user();
$server = ServerFactory::create([
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.glide-cache',
'base_url' => 'img',
]);
Storage::disk('public')->delete($user->banner_path);
$server->deleteCache($user->banner_path);
$user->banner_path = null;
$user->save();
return Redirect::back()->with('success', 'Баннер успешно удален!');
}
public function removePreview($id)
{
$media = Media::findOrFail($id);
$feed = $media->model;
if (is_a($feed, Feed::class)) {
if ($feed->user()->is(auth()->user())) {
$media->delete();
}
}
return Redirect::back()->with('success', 'Превью успешно удалено!');
}
}