refactor: optimize query usage in SyncSpotifyMusicProductions and SyncYoutubeReleases commands, enhance MusicProductionController by removing unused header logic, and update view structure for improved maintainability

This commit is contained in:
Ümit Tunç
2026-05-20 23:10:05 +03:00
parent ad4f04b005
commit 187f8c3812
6 changed files with 164 additions and 61 deletions
@@ -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,
]);
}
}