60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use FluxCms\Core\Models\CmsFaq;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class CmsFaqSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$locales = ['de', 'en'];
|
|
$faqsByLocale = [];
|
|
|
|
foreach ($locales as $locale) {
|
|
$path = lang_path("{$locale}/faqs.php");
|
|
if (file_exists($path)) {
|
|
$faqsByLocale[$locale] = require $path;
|
|
}
|
|
}
|
|
|
|
$deData = $faqsByLocale['de'] ?? [];
|
|
$enData = $faqsByLocale['en'] ?? [];
|
|
|
|
$allCategories = array_unique(array_merge(array_keys($deData), array_keys($enData)));
|
|
|
|
foreach ($allCategories as $category) {
|
|
$deCategory = $deData[$category] ?? [];
|
|
$enCategory = $enData[$category] ?? [];
|
|
|
|
$deItems = $deCategory['items'] ?? [];
|
|
$enItems = $enCategory['items'] ?? [];
|
|
|
|
$maxCount = max(count($deItems), count($enItems));
|
|
|
|
for ($i = 0; $i < $maxCount; $i++) {
|
|
$de = $deItems[$i] ?? [];
|
|
$en = $enItems[$i] ?? [];
|
|
|
|
CmsFaq::create([
|
|
'category' => $category,
|
|
'question' => array_filter([
|
|
'de' => $de['question'] ?? null,
|
|
'en' => $en['question'] ?? null,
|
|
]),
|
|
'answer' => array_filter([
|
|
'de' => $de['answer'] ?? null,
|
|
'en' => $en['answer'] ?? null,
|
|
]),
|
|
'help' => array_filter([
|
|
'de' => $de['help'] ?? null,
|
|
'en' => $en['help'] ?? null,
|
|
]) ?: null,
|
|
'is_published' => true,
|
|
'order' => $i,
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
}
|