diff --git a/app/Console/Commands/SyncSpotifyMusicProductions.php b/app/Console/Commands/SyncSpotifyMusicProductions.php index b65a2fa..7985212 100644 --- a/app/Console/Commands/SyncSpotifyMusicProductions.php +++ b/app/Console/Commands/SyncSpotifyMusicProductions.php @@ -168,12 +168,17 @@ class SyncSpotifyMusicProductions extends Command $slug = Str::slug($title); - $bySlug = MusicProduction::where('slug', '=', $slug, 'and')->first(); + $bySlug = MusicProduction::query() + ->where('slug', $slug) + ->first(); + if ($bySlug) { return $bySlug; } - return MusicProduction::whereRaw('LOWER(title) = ?', [Str::lower($title)], 'and')->first(); + return MusicProduction::query() + ->whereRaw('LOWER(title) = ?', [Str::lower($title)], 'and') + ->first(); } protected function parseReleaseDate(?string $date, string $precision = 'day'): ?Carbon diff --git a/app/Console/Commands/SyncYoutubeReleases.php b/app/Console/Commands/SyncYoutubeReleases.php index 2bc7e5a..58497ad 100644 --- a/app/Console/Commands/SyncYoutubeReleases.php +++ b/app/Console/Commands/SyncYoutubeReleases.php @@ -171,15 +171,17 @@ class SyncYoutubeReleases extends Command $slug = Str::slug($title); - $bySlug = MusicProduction::whereNull('youtube_video_id') - ->where('slug', '=', $slug, 'and') + $bySlug = MusicProduction::query() + ->whereNull('youtube_video_id', 'and', false) + ->where('slug', '=', $slug) ->first(); if ($bySlug) { return $bySlug; } - return MusicProduction::whereNull('youtube_video_id') + return MusicProduction::query() + ->whereNull('youtube_video_id', 'and', false) ->whereRaw('LOWER(title) = ?', [Str::lower($title)], 'and') ->first(); } diff --git a/app/Http/Controllers/MusicProductionController.php b/app/Http/Controllers/MusicProductionController.php index e9bfc47..5953690 100644 --- a/app/Http/Controllers/MusicProductionController.php +++ b/app/Http/Controllers/MusicProductionController.php @@ -4,10 +4,9 @@ namespace App\Http\Controllers; use App\Models\MusicProduction; use App\Models\Setting; -use App\Models\HeaderTemplate; use App\Models\FooterTemplate; use App\Services\TemplateService; -use Illuminate\Http\Request; +use Illuminate\Support\Str; class MusicProductionController extends Controller { @@ -15,7 +14,7 @@ class MusicProductionController extends Controller { // Get Settings $settings = new \stdClass(); - $allSettings = Setting::where('is_active', '=', true, 'and')->get(); + $allSettings = Setting::query()->where('is_active', true)->get(); foreach ($allSettings as $setting) { $settings->{$setting->key} = $setting->value; } @@ -25,30 +24,12 @@ class MusicProductionController extends Controller ->ordered() ->paginate(9); // Using 9 for nice grid layout (3 per row) - // --- Header Logic --- - $renderedHeader = null; - $defaultHeaderId = $settings->default_header ?? null; - - if ($defaultHeaderId) { - $headerTemplate = HeaderTemplate::find($defaultHeaderId); - if ($headerTemplate) { - $templateDefaults = $headerTemplate->default_data ?? []; - $mergedHeaderData = array_merge($templateDefaults, []); - - $renderedHeader = TemplateService::replacePlaceholders( - $headerTemplate->html_content, - $mergedHeaderData, - null - ); - } - } - // --- Footer Logic --- $renderedFooter = null; $defaultFooterId = $settings->default_footer ?? null; if ($defaultFooterId) { - $footerTemplate = FooterTemplate::find($defaultFooterId); + $footerTemplate = FooterTemplate::query()->find($defaultFooterId); if ($footerTemplate) { $templateDefaults = $footerTemplate->default_data ?? []; $mergedFooterData = array_merge($templateDefaults, []); @@ -64,10 +45,16 @@ class MusicProductionController extends Controller $meta = [ 'title' => __('music_productions.nav-music-productions'), 'description' => __('music_productions.meta-index-description'), - 'image' => asset('assets/img/photos/about28.jpg'), + 'image' => asset('assets/music-production.png'), ]; - return view('front.music-productions.index', compact('productions', 'settings', 'renderedHeader', 'renderedFooter', 'meta')); + return view('front.music-productions.index', [ + 'productions' => $productions, + 'settings' => $settings, + 'header' => 'partials.header-center-nav', + 'renderedFooter' => $renderedFooter, + 'meta' => $meta, + ]); } public function show($slug) @@ -78,7 +65,7 @@ class MusicProductionController extends Controller // Get Settings $settings = new \stdClass(); - $allSettings = Setting::where('is_active', '=', true, 'and')->get(); + $allSettings = Setting::query()->where('is_active', true)->get(); foreach ($allSettings as $setting) { $settings->{$setting->key} = $setting->value; } @@ -108,30 +95,12 @@ class MusicProductionController extends Controller ->orderBy('id', 'asc') ->first(); - // --- Header Logic --- - $renderedHeader = null; - $defaultHeaderId = $settings->default_header ?? null; - - if ($defaultHeaderId) { - $headerTemplate = HeaderTemplate::find($defaultHeaderId); - if ($headerTemplate) { - $templateDefaults = $headerTemplate->default_data ?? []; - $mergedHeaderData = array_merge($templateDefaults, []); - - $renderedHeader = TemplateService::replacePlaceholders( - $headerTemplate->html_content, - $mergedHeaderData, - $production - ); - } - } - // --- Footer Logic --- $renderedFooter = null; $defaultFooterId = $settings->default_footer ?? null; if ($defaultFooterId) { - $footerTemplate = FooterTemplate::find($defaultFooterId); + $footerTemplate = FooterTemplate::query()->find($defaultFooterId); if ($footerTemplate) { $templateDefaults = $footerTemplate->default_data ?? []; $mergedFooterData = array_merge($templateDefaults, []); @@ -146,10 +115,18 @@ class MusicProductionController extends Controller $meta = [ 'title' => $production->translate('title'), - 'description' => \Str::limit(strip_tags($production->translate('content')), 160), + 'description' => Str::limit(strip_tags($production->translate('content')), 160), 'image' => $production->cover_image_url, ]; - return view('front.music-productions.show', compact('production', 'prev', 'next', 'settings', 'renderedHeader', 'renderedFooter', 'meta')); + return view('front.music-productions.show', [ + 'production' => $production, + 'prev' => $prev, + 'next' => $next, + 'settings' => $settings, + 'header' => 'partials.header-center-nav', + 'renderedFooter' => $renderedFooter, + 'meta' => $meta, + ]); } } diff --git a/public/assets/music-production.png b/public/assets/music-production.png new file mode 100644 index 0000000..51347ac Binary files /dev/null and b/public/assets/music-production.png differ diff --git a/resources/views/front/music-productions/index.blade.php b/resources/views/front/music-productions/index.blade.php index dc32d56..8b2da9e 100644 --- a/resources/views/front/music-productions/index.blade.php +++ b/resources/views/front/music-productions/index.blade.php @@ -4,11 +4,18 @@ {{-- demo28.html: hero + itemgrid --}}
-
-
-
- {{ __('music_productions.meta-index-title') }} -
+
+
+
+ {{ __('music_productions.meta-index-title') }} +
@@ -82,19 +89,19 @@ @endphp
-
'> - +
'> + @if($production->cover_image_url) - {{ $production->translate('title') }} + {{ $production->translate('title') }} @else - {{ $production->translate('title') }} + {{ $production->translate('title') }} @endif
{{ $categoryLabel }}
-

{{ $production->translate('title') }}

+

{{ $production->translate('title') }}

@@ -141,6 +148,29 @@ @push('styles')