Alikategoria-parannukset: monivalinta, Muut-kategoria, emoji pois administa
- api.php: lisätään 'Muut'-alikategoria Resepteihin, Neulomiseen ja Vinkkeihin - api.php: getOrInitCategories() lisää puuttuvat alikategoriat automaattisesti - admin.html: poistetaan emoji-kenttä (emoji tulee kategoriasta automaattisesti) - admin.html: alikategoriat checkboxeina → voi valita useamman samanaikaisesti - script.js: subcategory tallennetaan aina taulukkona - script.js: filterPosts tukee pilkulla eroteltuja alikategorioita (postSubs.includes) - script.js: renderCards kirjoittaa subcategory-arrayn pilkulla eroteltuna data-attribuuttiin Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
22
api.php
22
api.php
@@ -60,15 +60,19 @@ function defaultCategories(): array {
|
||||
['id' => 'kasvis', 'fi' => 'Kasvis'],
|
||||
['id' => 'vegaaniset', 'fi' => 'Vegaaniset'],
|
||||
['id' => 'jalkiruuat', 'fi' => 'Jälkiruuat'],
|
||||
['id' => 'muut', 'fi' => 'Muut'],
|
||||
]],
|
||||
['id' => 'knitting', 'fi' => 'Neulominen', 'en' => 'Knitting', 'emoji' => '🧶',
|
||||
'subcategories' => [
|
||||
['id' => 'aloittelijoille', 'fi' => 'Aloittelijoille'],
|
||||
['id' => 'vaatteet', 'fi' => 'Vaatteet'],
|
||||
['id' => 'kodin_tekstiilit','fi' => 'Kodin tekstiilit'],
|
||||
['id' => 'muut', 'fi' => 'Muut'],
|
||||
]],
|
||||
['id' => 'tips', 'fi' => 'Vinkit', 'en' => 'Tips', 'emoji' => '💡',
|
||||
'subcategories' => []],
|
||||
'subcategories' => [
|
||||
['id' => 'muut', 'fi' => 'Muut'],
|
||||
]],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -316,15 +320,25 @@ function getOrInitCategories(): array {
|
||||
return $cats;
|
||||
}
|
||||
$cats = readData('categories.json', []);
|
||||
// Merge in subcategories if existing file doesn't have them yet
|
||||
// Merge in subcategories (and new ones) from defaults if missing
|
||||
$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'];
|
||||
$defSubs = $defaultMap[$cat['id']]['subcategories'] ?? [];
|
||||
if (!isset($cat['subcategories'])) {
|
||||
$cat['subcategories'] = $defSubs;
|
||||
$changed = true;
|
||||
} else {
|
||||
// Add any new subcategory ids from defaults that don't exist yet
|
||||
$existingIds = array_column($cat['subcategories'], 'id');
|
||||
foreach ($defSubs as $ds) {
|
||||
if (!in_array($ds['id'], $existingIds)) {
|
||||
$cat['subcategories'][] = $ds;
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($cat);
|
||||
|
||||
Reference in New Issue
Block a user