meobda-website/app/Http/Controllers/Admin/SiteDataController.php

63 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use const PHP_EOL;
use App\Http\Controllers\Controller;
use App\Http\Requests\SiteDataRequest;
use App\Models\SiteDataItem;
use Illuminate\Database\Eloquent\ModelNotFoundException;
class SiteDataController extends Controller
{
public function index()
{
$dataStrings = SiteDataItem::where('type', 'string')->get();
$dataText = SiteDataItem::where('type', 'text')->get();
$officerText = $this->officerText(siteData('officers'));
$concertEnsemblesText = $this->ensemblesText(siteData('concertEnsembles'));
$jazzEnsemblesText = $this->ensemblesText(siteData('jazzEnsembles'));
$beginnerEnsemblesText = $this->ensemblesText(siteData('beginnerEnsembles'));
return view('admin.site-data', compact(
'dataStrings',
'dataText',
'officerText',
'concertEnsemblesText',
'jazzEnsemblesText',
'beginnerEnsemblesText'
));
}
public function update(SiteDataRequest $request)
{
foreach ($request->validated() as $key => $value) {
siteData($key, $value);
}
return redirect()->route('admin.site-data.index')->with('success', 'Data updated successfully.');
}
protected function officerText(array $officerDataArray): string
{
$officerText = '';
foreach ($officerDataArray as $officer) {
$officerText .= $officer['office'].', '.$officer['name'].', '.$officer['school'].PHP_EOL;
}
return $officerText;
}
protected function ensemblesText(array $ensembleDataArray): string
{
$ensembleText = '';
foreach ($ensembleDataArray as $ensemble) {
$ensembleText .= $ensemble['name'].', '.$ensemble['chair'].', '.$ensemble['clinician'].PHP_EOL;
}
return $ensembleText;
}
}