Die Bereiche der FAQ-Seite lagen als verschachtelte Listen in sections, der Editor zeigte davon nur JSON-Text. Jetzt stehen alle Fragen in questions mit dem Feld category, Überschrift und Symbol der Bereiche in categories. FAQ::groups baut daraus die Seite (allgemeine Fragen zuerst), alte Einträge werden weiter dargestellt. FaqCategoriesSeeder stellt gespeicherte Einträge um (FAQ und Immobilien-FAQ), Texte bleiben. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 lines
1.6 KiB
PHP
44 lines
1.6 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Livewire\Web\Components\Sections\FAQ;
|
||
use FluxCms\Core\Models\CmsContent;
|
||
use FluxCms\Core\Services\CmsContentService;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
/**
|
||
* FAQ im Inhalte-Editor vollständig bearbeitbar machen (09.10.2026).
|
||
*
|
||
* Die Bereiche der FAQ-Seite („Für Ihr Zuhause“, „Für Projekte und Objekte“) lagen verschachtelt
|
||
* in `sections`, je mit eigener Fragenliste – der Editor zeigte davon nur JSON-Text. Jetzt steht
|
||
* jede Frage in `questions` und trägt ihren Bereich in `category`; Überschrift und Symbol der
|
||
* Bereiche stehen in `categories`. Texte und Reihenfolge bleiben, wie sie gepflegt sind.
|
||
* Bereits umgestellte Einträge bleiben unberührt, mehrfaches Ausführen ist unbedenklich.
|
||
*
|
||
* php artisan db:seed --class=FaqCategoriesSeeder
|
||
*/
|
||
class FaqCategoriesSeeder extends Seeder
|
||
{
|
||
public function run(): void
|
||
{
|
||
$changed = 0;
|
||
|
||
foreach (CmsContent::query()->where('group', 'faq')->whereIn('key', ['faq', 'faq_immobilien'])->get() as $row) {
|
||
$value = $row->getTranslations('value');
|
||
$updated = array_map(fn (mixed $content): mixed => is_array($content) ? FAQ::flatten($content) : $content, $value);
|
||
|
||
if ($updated !== $value) {
|
||
$row->value = $updated;
|
||
$row->save();
|
||
$changed++;
|
||
}
|
||
}
|
||
|
||
if ($changed > 0) {
|
||
app(CmsContentService::class)->clearCache('faq');
|
||
}
|
||
|
||
$this->command?->info("FAQ: {$changed} Einträge auf Bereiche je Frage umgestellt.");
|
||
}
|
||
}
|