f1d196f018
- spatie/laravel-medialibrary instalat (migration media table)
- filament/spatie-laravel-media-library-plugin
- Company implements HasMedia + InteractsWithMedia
- collections: 'logo' + 'favicon' (singleFile)
- getLogoUrl() / getFaviconUrl() helpers
- Settings page extins: secțiune Logo & favicon cu FileUpload
- On save: clear collection + addMedia from temp upload + cleanup tmp file
- TenantPanelProvider render hooks:
- HEAD_END: theme-color meta + favicon + CSS vars override
(--primary-50 → --primary-950 generate din hex theme_color)
- SIDEBAR_LOGO_BEFORE: afișare logo upload-uit, max-height 56px
Cum funcționează:
- Tenant uploadează logo în Settings
- La fiecare request, render hook injectează <style> cu CSS vars custom
- Filament respectă --primary-* → toate butoanele/badge-urile primesc culoarea brand
- Logo apare deasupra meniului (sidebar)
33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Database\Migrations\Migration;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
return new class extends Migration
|
|
{
|
|
public function up(): void
|
|
{
|
|
Schema::create('media', function (Blueprint $table) {
|
|
$table->id();
|
|
|
|
$table->morphs('model');
|
|
$table->uuid()->nullable()->unique();
|
|
$table->string('collection_name');
|
|
$table->string('name');
|
|
$table->string('file_name');
|
|
$table->string('mime_type')->nullable();
|
|
$table->string('disk');
|
|
$table->string('conversions_disk')->nullable();
|
|
$table->unsignedBigInteger('size');
|
|
$table->json('manipulations');
|
|
$table->json('custom_properties');
|
|
$table->json('generated_conversions');
|
|
$table->json('responsive_images');
|
|
$table->unsignedInteger('order_column')->nullable()->index();
|
|
|
|
$table->nullableTimestamps();
|
|
});
|
|
}
|
|
};
|