Korjaa alikategoria-ongelmat

- api.php: getOrInitCategories() päivittää automaattisesti subcategories-kentän
  olemassaolevaan categories.json-tiedostoon ilman manuaalista seedausta
- index.html: alikategoria-valitsin julkaisulomakkeeseen (näkyy kun kategorialla on alikategoriat)
- script.js: subcategory tallennetaan uuteen julkaisuun
- script.js: filterPosts null-turva + hakukenttä etsii myös alikategoria-id:llä
- script.js: updateSubcategoryPicker() päivittää alikategoriat kategorian vaihtuessa

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 08:24:24 +02:00
parent 88e17d2b92
commit 993a137508
3 changed files with 50 additions and 12 deletions

16
api.php
View File

@@ -315,7 +315,21 @@ function getOrInitCategories(): array {
writeData('categories.json', $cats);
return $cats;
}
return readData('categories.json', []);
$cats = readData('categories.json', []);
// Merge in subcategories if existing file doesn't have them yet
$defaults = defaultCategories();
$defaultMap = [];
foreach ($defaults as $d) { $defaultMap[$d['id']] = $d; }
$changed = false;
foreach ($cats as &$cat) {
if (!isset($cat['subcategories']) && isset($defaultMap[$cat['id']]['subcategories'])) {
$cat['subcategories'] = $defaultMap[$cat['id']]['subcategories'];
$changed = true;
}
}
unset($cat);
if ($changed) writeData('categories.json', $cats);
return $cats;
}
// ─── Routing ───────────────────────────────────────────────────