diff --git a/api.php b/api.php index 6394c2d..bfed7bf 100644 --- a/api.php +++ b/api.php @@ -55,21 +55,73 @@ function isAdmin(): bool { // ─── Oletusdata ──────────────────────────────────────────────── function defaultCategories(): array { return [ - ['id' => 'recipes', 'fi' => 'Reseptit', 'en' => 'Recipes', 'emoji' => '🍳', + ['id' => 'recipes', 'fi' => 'Reseptit', 'en' => 'Recipes', 'emoji' => '🍳', 'subcategories' => [ ['id' => 'kasvis', 'fi' => 'Kasvis'], ['id' => 'vegaaniset', 'fi' => 'Vegaaniset'], ['id' => 'jalkiruuat', 'fi' => 'Jälkiruuat'], ['id' => 'muut', 'fi' => 'Muut'], ]], - ['id' => 'knitting', 'fi' => 'Neulominen', 'en' => 'Knitting', 'emoji' => '🧶', + ['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' => 'aloittelijoille', 'fi' => 'Aloittelijoille'], + ['id' => 'vaatteet', 'fi' => 'Vaatteet'], + ['id' => 'kodin_tekstiilit', 'fi' => 'Kodin tekstiilit'], + ['id' => 'muut', 'fi' => 'Muut'], ]], - ['id' => 'tips', 'fi' => 'Vinkit', 'en' => 'Tips', 'emoji' => '💡', + ['id' => 'kasityot', 'fi' => 'Käsityöt', 'en' => 'Crafts', 'emoji' => '✂️', + 'subcategories' => [ + ['id' => 'virkkaus', 'fi' => 'Virkkaus'], + ['id' => 'ommelu', 'fi' => 'Ommelu'], + ['id' => 'askartelu', 'fi' => 'Askartelu'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'puutarha', 'fi' => 'Puutarha', 'en' => 'Gardening', 'emoji' => '🌱', + 'subcategories' => [ + ['id' => 'vihannekset', 'fi' => 'Vihannekset'], + ['id' => 'kukat', 'fi' => 'Kukat'], + ['id' => 'parvekeviljeily', 'fi' => 'Parvekeviljeily'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'sisustus', 'fi' => 'Sisustus', 'en' => 'Interior', 'emoji' => '🏠', + 'subcategories' => [ + ['id' => 'diy', 'fi' => 'DIY'], + ['id' => 'valaistus', 'fi' => 'Valaistus'], + ['id' => 'tekstiilit', 'fi' => 'Tekstiilit'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'kirjat', 'fi' => 'Kirjat', 'en' => 'Books', 'emoji' => '📚', + 'subcategories' => [ + ['id' => 'romaanit', 'fi' => 'Romaanit'], + ['id' => 'tietokirjat', 'fi' => 'Tietokirjat'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'hyvinvointi', 'fi' => 'Hyvinvointi', 'en' => 'Wellbeing', 'emoji' => '🧘', + 'subcategories' => [ + ['id' => 'liikunta', 'fi' => 'Liikunta'], + ['id' => 'uni', 'fi' => 'Uni'], + ['id' => 'mieli', 'fi' => 'Mieli'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'lemmikit', 'fi' => 'Lemmikit', 'en' => 'Pets', 'emoji' => '🐾', + 'subcategories' => [ + ['id' => 'koirat', 'fi' => 'Koirat'], + ['id' => 'kissat', 'fi' => 'Kissat'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'kasvit', 'fi' => 'Kasvit', 'en' => 'Plants', 'emoji' => '🪴', + 'subcategories' => [ + ['id' => 'huonekasvit', 'fi' => 'Huonekasvit'], + ['id' => 'puutarhakasvit', 'fi' => 'Puutarhakasvit'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'matkustus', 'fi' => 'Matkustus', 'en' => 'Travel', 'emoji' => '✈️', + 'subcategories' => [ + ['id' => 'suomi', 'fi' => 'Suomi'], + ['id' => 'eurooppa', 'fi' => 'Eurooppa'], + ['id' => 'muut', 'fi' => 'Muut'], + ]], + ['id' => 'tips', 'fi' => 'Vinkit', 'en' => 'Tips', 'emoji' => '💡', 'subcategories' => [ ['id' => 'muut', 'fi' => 'Muut'], ]], @@ -113,7 +165,7 @@ function defaultPosts(): array { ], [ 'id' => 'banana_bread', 'emoji' => '🍌', 'title' => 'Mehevä banaanileipä', - 'category' => 'recipes', 'author' => 'Kaisa M.', + 'category' => 'recipes', 'author' => 'Tiina K.', 'time' => '1 t 10 min', 'servings' => '10 siivua', 'type' => 'recipe', 'desc' => 'Täydellinen tapa käyttää ylikypsät banaanit. Kosteaa, makeaa ja ihanan aromaattista.', 'ingredients' => ['3 ylikypsää banaania','2 dl vehnäjauhoja','1 tl ruokasoodaa','½ tl suolaa','75 g sulatettua voita','1½ dl sokeria','1 muna','1 tl vaniljauutetta','½ dl smetanaa tai piimää'], @@ -121,7 +173,7 @@ function defaultPosts(): array { ], [ 'id' => 'salmon_soup', 'emoji' => '🐟', 'title' => 'Perinteinen lohikeitto', - 'category' => 'recipes', 'author' => 'Pirkko', + 'category' => 'recipes', 'author' => 'Sinikka', 'time' => '40 min', 'servings' => '4 annosta', 'type' => 'recipe', 'desc' => 'Kermainen ja täyteläinen lohikeitto — suomalainen sieluruoka parhaimmillaan.', 'ingredients' => ['500 g lohifileetä, kuutioina','4 perunaa, kuutioina','2 porkkanaa, siivuina','1 purjo, siivuina','1 l kalaliemi tai vesi','2 dl kuohukermaa','Tilliä, suolaa, valkopippuria','Voita paistamiseen'], @@ -129,7 +181,7 @@ function defaultPosts(): array { ], [ 'id' => 'cinnamon_rolls', 'emoji' => '🌀', 'title' => 'Korvapuustit', - 'category' => 'recipes', 'author' => 'Tuulikki', + 'category' => 'recipes', 'author' => 'Riitta H.', 'time' => '2 t 30 min', 'servings' => '20 kpl', 'type' => 'recipe', 'desc' => 'Pehmeät, kanelilla ja kardemummalla maustetut korvapuustit — suomalaiseen kahvipöytään kuuluvat klassikoista klassisin.', 'ingredients' => ['5 dl maitoa','50 g hiivaa','1½ dl sokeria','1 tl suolaa','2 tl jauhettua kardemummaa','noin 13 dl vehnäjauhoja','150 g pehmeää voita','Täyte: 100 g pehmeää voita, 1 dl sokeria, 2 rkl kanelia','Munaa voiteluun, karkeaa sokeria päälle'], @@ -137,7 +189,7 @@ function defaultPosts(): array { ], [ 'id' => 'strawberry_quark', 'emoji' => '🍓', 'title' => 'Mansikkarahka', - 'category' => 'recipes', 'subcategory' => 'jalkiruuat', 'author' => 'Marjatta R.', + 'category' => 'recipes', 'subcategory' => 'jalkiruuat', 'author' => 'Tiina K.', 'time' => '15 min', 'servings' => '4 annosta', 'type' => 'recipe', 'desc' => 'Helppo ja raikas jälkiruoka kesän makeimmista mansikoista. Valmistuu vartin kymmenessä minuutissa!', 'ingredients' => ['500 g tuoreita mansikoita','400 g rahkaa tai maitorahkaa','2 dl kuohukermaa','3 rkl sokeria tai hunajaa','1 tl vaniljasokeria','Mintunlehtiä koristeluun'], @@ -145,7 +197,7 @@ function defaultPosts(): array { ], [ 'id' => 'carrot_ginger_soup', 'emoji' => '🥕', 'title' => 'Porkkana-inkiväärikeitto', - 'category' => 'recipes', 'subcategory' => 'vegaaniset', 'author' => 'Hannele', + 'category' => 'recipes', 'subcategory' => 'vegaaniset', 'author' => 'Maija-Liisa', 'time' => '35 min', 'servings' => '4 annosta', 'type' => 'recipe', 'desc' => 'Kirpeä inkivääri ja makea porkkana luovat täydellisen liiton tässä lämmittävässä keitossa.', 'ingredients' => ['700 g porkkanoita, siivuina','1 sipuli','3 valkosipulinkynttä','4 cm tuoretta inkivääriä, raastettuna','1 l kasvislientä','2 dl kookoskermaa','2 rkl oliiviöljyä','Suolaa, pippuria','Korianteria tai persiljaa tarjoiluun'], @@ -153,7 +205,7 @@ function defaultPosts(): array { ], [ 'id' => 'homemade_pizza', 'emoji' => '🍕', 'title' => 'Kotitekoinen pizza', - 'category' => 'recipes', 'author' => 'Aino S.', + 'category' => 'recipes', 'author' => 'Sinikka', 'time' => '1 t 30 min', 'servings' => '2 pizzaa', 'type' => 'recipe', 'desc' => 'Rapea, ohut pohja ja täyteläinen tomaattikastike. Kotipizza voittaa aina.', 'ingredients' => ['3 dl lämmintä vettä','1 tl kuivahiivaa','1 tl sokeria','1 tl suolaa','5 dl vehnäjauhoja','2 rkl oliiviöljyä','Kastike: 400 g tomaattimurskaa, 2 valkosipulinkynttä, oreganoa','Täytteet: mozzarella, mitä haluat'], @@ -193,7 +245,7 @@ function defaultPosts(): array { ], [ 'id' => 'meatballs', 'emoji' => '🍖', 'title' => 'Lihapullat ruskeassa kastikkeessa', - 'category' => 'recipes', 'author' => 'Kaisa M.', + 'category' => 'recipes', 'author' => 'Pekka', 'time' => '1 t', 'servings' => '4 annosta', 'type' => 'recipe', 'desc' => 'Perinteiset kotimaiset lihapullat kermaisen ruskean kastikkeen kera. Tarjoile muusiperunan ja puolukan kera.', 'ingredients' => ['500 g jauhelihaa (naudan ja sian sekoitus)','1 dl korppujauhoja','1 dl maitoa','1 muna','1 sipuli, hienonnettuna','Suolaa, pippuria, maustepippuria','Kastike: 3 dl lihalientä, 1½ dl kermaa, 1 rkl vehnäjauhoja'], @@ -201,7 +253,7 @@ function defaultPosts(): array { ], [ 'id' => 'cauliflower_soup', 'emoji' => '🥦', 'title' => 'Samettinen kukkakaalikeitto', - 'category' => 'recipes', 'subcategory' => 'kasvis', 'author' => 'Pirkko', + 'category' => 'recipes', 'subcategory' => 'kasvis', 'author' => 'Sinikka', 'time' => '30 min', 'servings' => '4 annosta', 'type' => 'recipe', 'desc' => 'Silky-sileä kukkakaalikeitto — yllättävän täyteläinen ja herkullinen arki-illalliseksi.', 'ingredients' => ['1 kukkakaali, paloina','1 sipuli','2 valkosipulinkynttä','1 l kasvislientä','2 dl kermaa','2 rkl oliiviöljyä','Suolaa, valkopippuria','Paahdettuja pähkinöitä tai yrttejä tarjoiluun'], @@ -209,7 +261,7 @@ function defaultPosts(): array { ], [ 'id' => 'karjalanpaisti', 'emoji' => '🥘', 'title' => 'Karjalanpaisti', - 'category' => 'recipes', 'author' => 'Marjatta R.', + 'category' => 'recipes', 'author' => 'Pekka', 'time' => '3–4 t', 'servings' => '6 annosta', 'type' => 'recipe', 'desc' => 'Perinteinen suomalainen pataruoka, joka hautuu uunissa itsekseen. Tuoksu täyttää koko kodin.', 'ingredients' => ['600 g naudanlihaa (esim. lapa), kuutioina','400 g sianlihaa (esim. niska), kuutioina','2 sipulia, lohkottuna','2 porkkanaa, siivuina','2 laakerinlehteä','10 maustepippuria','Suolaa','Vettä tai lihalientä'], @@ -218,19 +270,19 @@ function defaultPosts(): array { // ── NEULOMINEN ─────────────────────────────────────────── [ 'id' => 'knitting_scarf', 'emoji' => '🧶', 'title' => 'Helppo huivi aloittelijalle', - 'category' => 'knitting', 'subcategory' => 'aloittelijoille', 'author' => 'Tuulikki', 'type' => 'post', + 'category' => 'knitting', 'subcategory' => 'aloittelijoille', 'author' => 'Riitta H.', 'type' => 'post', 'desc' => 'Neulo kaunis huivi muutamassa tunnissa — täydellinen ensimmäinen projekti!', 'body' => '

Tarvitset:

Ohje: Luo 20 silmukkaa. Neulo suoraan (edestakaisin oikein silmukoin) kunnes huivi on noin 150 cm pitkä. Päättele silmukat ja viimeistele päät. Valmis! 🎉

Vinkki: Paksuilla langoilla ja suurilla neuloilla saat huivista nopeasti valmiin, vaikka olisit aloittelija.

', ], [ 'id' => 'knitting_mittens', 'emoji' => '🧤', 'title' => 'Peukalolapaset aloittelijalle', - 'category' => 'knitting', 'subcategory' => 'vaatteet', 'author' => 'Hannele', 'type' => 'post', + 'category' => 'knitting', 'subcategory' => 'vaatteet', 'author' => 'Maija-Liisa', 'type' => 'post', 'desc' => 'Yksinkertaiset lapaset jotka valmistuvat viikonloppuna — lämpimät ja persoonalliset.', 'body' => '

Tarvitset:

Ohje:

  1. Luo 36 silmukkaa pyöröneulalle ja neulo 2×2-joustinta 8 cm.
  2. Vaihda sileään neuleeseen ja lisää peukaloreikää varten 8 silmukkaa.
  3. Neulo suora 15 cm peukaloreikään saakka.
  4. Sulje yläpää vähentämällä 8 silmukkaa joka toisella kerroksella.
  5. Neulo peukalo erillisistä silmukoista.

Vinkki: Käytä värillistä lankaa tekemään kirjoneuleraita, niin lapasista tulee yksilölliset! 🎨

', ], [ 'id' => 'knitting_hat', 'emoji' => '🎩', 'title' => 'Yksinkertainen pipo', - 'category' => 'knitting', 'subcategory' => 'vaatteet', 'author' => 'Aino S.', 'type' => 'post', + 'category' => 'knitting', 'subcategory' => 'vaatteet', 'author' => 'Sinikka', 'type' => 'post', 'desc' => 'Pipo syntyy parissa illassa — kiva lahja tai itselle talven varalle.', 'body' => '

Pipo on helppo ja nopea projekti, täydellinen aloittelijalle!

Tarvitset:

Ohje (koko S/M):

  1. Luo 88 silmukkaa ja liitä rengasneuleeksi.
  2. Neulo 2×2-joustinta 8 cm.
  3. Vaihda sileään neuleeseen ja neulo 18 cm.
  4. Pienennä: * 8 oikein, 2 yhteen * — toista koko kerrokselle.
  5. Neulo 1 kerros suoraan. Toista pienennykset kunnes jäljellä on 9 silmukkaa.
  6. Vedä lanka silmukoiden lävitse ja kiristä napakasti.
', ], @@ -254,38 +306,38 @@ function defaultPosts(): array { ], [ 'id' => 'knitting_dishcloth', 'emoji' => '🫧', 'title' => 'Neulottu tiskiliina', - 'category' => 'knitting', 'subcategory' => 'kodin_tekstiilit', 'author' => 'Kaisa M.', 'type' => 'post', + 'category' => 'knitting', 'subcategory' => 'kodin_tekstiilit', 'author' => 'Tiina K.', 'type' => 'post', 'desc' => 'Ekologinen vaihtoehto kertakäyttöisille tiskisienille. Valmistuu tunnissa ja kestää vuosia.', 'body' => '

Neulottu tiskiliina on täydellinen ensiprojekti — yksinkertainen, nopea ja hyödyllinen!

Tarvikeet:

Ohje:

  1. Luo 30 silmukkaa.
  2. Neulo helmineuletta: * 1 oikein, 1 nurjin * — toista joka kerros.
  3. Jatka kunnes tiskiliina on neliön muotoinen (noin 20×20 cm).
  4. Päättele silmukat löysästi.

Helmineule tarkoittaa, että molemmat puolet ovat samannäköisiä. Tee useampia eri väreissä! 🎨

', ], [ 'id' => 'knitting_cowl', 'emoji' => '🌀', 'title' => 'Kauluri talveen', - 'category' => 'knitting', 'author' => 'Pirkko', 'type' => 'post', + 'category' => 'knitting', 'author' => 'Sinikka', 'type' => 'post', 'desc' => 'Muhkea kauluri pitää lämpimänä ja on käytännöllisempi kuin huivi — ei liiku paikaltaan!', 'body' => '

Kauluri pysyy paikallaan eikä tipu, toisin kuin huivi. Tämä kauluri on nopea neuloa.

Tarvikeet:

Ohje:

  1. Luo 80 silmukkaa pyöröneulalle. Liitä rengasneuleeksi.
  2. Merkitse kierroksen alku pistomerkillä.
  3. Neulo 2×2-joustinta koko kierros.
  4. Jatka kunnes kauluri on 30 cm pitkä.
  5. Päättele joustinpäättelyllä (löysästi!).

Joustinpäättely antaa kauniin ja joustavan reunuksen. ✨

', ], [ 'id' => 'crochet_basket', 'emoji' => '🧺', 'title' => 'Virkkaa kori langantähteistä', - 'category' => 'knitting', 'subcategory' => 'kodin_tekstiilit', 'author' => 'Marjatta R.', 'type' => 'post', + 'category' => 'knitting', 'subcategory' => 'kodin_tekstiilit', 'author' => 'Tiina K.', 'type' => 'post', 'desc' => 'Käytä lankatähteet hyödyksi! Kori syntyy muutamassa tunnissa ja sopii kaikkeen säilyttämiseen.', 'body' => '

Tässä pääset eroon lankatähteistä luovasti. Yhdistä eri värejä raidalliseen koriin!

Tarvikeet:

Ohje:

  1. Pohja: Luo taikusilmukka. Virkkaa 12 pistettä ensimmäiseen kierrokseen. Lisää joka toisella kierroksella 6 pistettä. Jatka 5 kierrosta kunnes halkaisija on noin 15 cm.
  2. Reunat: Virkkaa vain jokaisen pisteen takimmaisen silmukan lävitse (pystyy korin reunan). Virkkaa suoraan ylöspäin 10–15 cm.
  3. Viimeistely: Päätä piste tiukasti ja piilota langat.

💡 Paksuilla langoilla kori kasvaa nopeasti. Kokeile tehdä eri kokoisia koreja sarjana!

', ], // ── VINKIT ─────────────────────────────────────────────── [ 'id' => 'tip_morning', 'emoji' => '💡', 'title' => 'Rauhallinen aamurutiini', - 'category' => 'tips', 'author' => 'Hannele', 'type' => 'post', + 'category' => 'tips', 'author' => 'Maija-Liisa', 'type' => 'post', 'desc' => 'Pienet muutokset aamurutiiniin tekevät koko päivästä paremman.', 'body' => '

Kokeile näitä vinkkejä parempaan aamuun:

Pienet muutokset, iso vaikutus!

', ], [ 'id' => 'tip_digital_detox', 'emoji' => '📵', 'title' => 'Digipaasto — kokeile viikon ajan', - 'category' => 'tips', 'author' => 'Tuulikki', 'type' => 'post', + 'category' => 'tips', 'author' => 'Riitta H.', 'type' => 'post', 'desc' => 'Vähennä ruutuaikaa ja huomaa miten elämä muuttuu. Ei tarvitse lopettaa kokonaan!', 'body' => '

Kokeilin viime kuussa viikon digipaastoa ja muutos oli hämmästyttävä. Tässä omat vinkkini:

Käytännön vinkit

Nukuin paremmin jo ensimmäisestä yöstä alkaen. Ja parasta: tajusin, miten paljon aikaa minulla oikeasti on!

', ], [ 'id' => 'tip_budgeting', 'emoji' => '💰', 'title' => 'Säästövinkit arkeen', - 'category' => 'tips', 'author' => 'Aino S.', 'type' => 'post', + 'category' => 'tips', 'author' => 'Sinikka', 'type' => 'post', 'desc' => 'Pienet muutokset arjessa voivat säästää satoja euroja vuodessa — ilman että elämänlaatu kärsii.', 'body' => '

Olen oppinut säästämään arjessa ilman tinkimistä mieluisista asioista. Tässä parhaat vinkkini:

Ruokaostokset

Energia

Ja muista: paras kauppa on se johon et mene lainkaan! 😄

', ], @@ -301,6 +353,164 @@ function defaultPosts(): array { 'desc' => 'Puhdista koti turvallisilla aineilla — parempi sinulle, parempi ympäristölle ja halvempaa!', 'body' => '

Tehokkain siivousaine löytyy usein kaapistasi: etikka, ruokasooda ja sitruuna tekevät ihmeitä.

Perusreseptit

Mitä kannattaa vältellä

Klooripohjaiset aineet ovat tehokkaita mutta raskaita ympäristölle ja hengitysteille. Useimmissa kotitöissä pärjät ilman niitä. Säilytä ne vain tosi tarpeelliseen.

', ], + // ── KÄSITYÖT ───────────────────────────────────────────── + [ + 'id' => 'craft_crochet_heart', 'emoji' => '🧶', 'title' => 'Virkattu sydän — helppo lahja', + 'category' => 'kasityot', 'subcategory' => ['virkkaus'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Pieni virkattu sydän syntyy tunnissa ja on täydellinen lahja tai koriste.', + 'body' => '

Tämä söpö sydän on helppo myös aloittelijalle!

Tarvikeet:

Ohje:

  1. Luo taikusilmukka. Virkkaa 3 ketjusilmukkaa (= 1 pylväs).
  2. Kierros 1: Virkkaa 2 pylvästä taikusilmukkaan, 3 ketjusilmukkaa, 2 pylvästä, 3 ketjua, 1 pylväs. Sulje.
  3. Jatka kiertämällä ja lisäämällä pylväitä sydämen muodon mukaan — YouTube-tutoriaalit auttavat!
  4. Tee kaksi samanlaista osaa, ompele yhteen ja täytä vanulla.

💡 Kaksivärinen lanka tekee sydämestä erityisen kauniin!

', + ], + [ + 'id' => 'craft_tote_bag', 'emoji' => '👜', 'title' => 'Ompele oma kangaskassi', + 'category' => 'kasityot', 'subcategory' => ['ommelu'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Ekologinen ja persoonallinen kangaskassi onnistuu jopa ilman ompelukonetta — mutta koneella nopeammin!', + 'body' => '

Kangaskassi on helppo ensimmäinen ompelutyö. Tarvitset vain suorat saumat!

Tarvikeet:

Ohje:

  1. Taita kangas oikeat puolet vastakkain, leveyssuunnassa puoliksi.
  2. Ompele sivusaumat ja pohja (jätä aukon yläreuna auki).
  3. Viimeistele yläreuna kääntämällä noin 2 cm sisäänpäin ja ompele.
  4. Kiinnitä kantohihnat ompelemalla lujasti yläreunaan, molemmille puolille.
  5. Käännä oikea puoli ulos — valmis!

Vinkki: Pese kangas ennen ompelemista, niin se ei enää kutistu käytössä. 🧺

', + ], + [ + 'id' => 'craft_macrame', 'emoji' => '🎨', 'title' => 'Makramee-seinäkoriste', + 'category' => 'kasityot', 'subcategory' => ['askartelu'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Trendikäs makramee-koriste syntyy muutamassa tunnissa ja koristaa seinää vuosia.', + 'body' => '

Makramee on solmimistaidetta joka näyttää vaikeammalta kuin onkaan!

Tarvikeet:

Perussolmut:

Ohje:

  1. Leikkaa 8 lankaa, kukin 2 m pitkiä. Taita puoliksi ja ripusta kepille larkshead-solmulla.
  2. Tee 3 tasaista solmua peräkkäin jokaisella 4 langan ryhmällä.
  3. Vaihda ryhmiä: ota 2 lankaa viereisestä ryhmästä ja tee uusi solmu (luo verkkokuvion).
  4. Jatka haluamasi pituuteen, viimeistele hajanaisilla langanpäillä.
', + ], + // ── PUUTARHA ───────────────────────────────────────────── + [ + 'id' => 'garden_tomatoes', 'emoji' => '🍅', 'title' => 'Tomaatit ruukussa — oma sato parvekkeelta', + 'category' => 'puutarha', 'subcategory' => ['parvekeviljeily', 'vihannekset'], 'author' => 'Sinikka', 'type' => 'post', + 'desc' => 'Parveketomaatti on helppo aloittelijan kasvi — ja oma sato maistuu aina kaupan tomaatilta paremmalta.', + 'body' => '

Tomaatit viihtyvät mainiosti ruukussa, kunhan valitset parvekelajikkeen.

Lajikkeen valinta

Valitse parveketomaatti tai kirsikkatomaatti — ne kasvavat pieniksi ja sopivat ruukkuun. Isot beef-tomaatit tarvitsevat enemmän tilaa.

Hoito-ohjeet

Ensimmäinen oma tomaatti on kuin pieni ihme! 🍅

', + ], + [ + 'id' => 'garden_herbs', 'emoji' => '🌿', 'title' => 'Yrttipuutarha ikkunalaudalle', + 'category' => 'puutarha', 'subcategory' => ['parvekeviljeily'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Tuoreita yrttejä suoraan ikkunalaudalta — basilika, persilja ja ruohosipuli onnistuvat helposti.', + 'body' => '

Yrttipuutarha on helpoin tapa aloittaa viljely. Pienikin ikkunalauta riittää!

Parhaat yrtit aloittelijalle

Hoitovinkit

Tuore basilika pastaan tai ruohosipuli munakkaaseen — yksinkertaiset ilot ovat parhaita! 🌞

', + ], + [ + 'id' => 'garden_strawberries', 'emoji' => '🍓', 'title' => 'Mansikat parvekkeen laatikoissa', + 'category' => 'puutarha', 'subcategory' => ['parvekeviljeily', 'vihannekset'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Mansikat viihtyvät hyvin parvekkeen laatikoissa — kesä on makulomaa kun omat mansikat kypsyvät.', + 'body' => '

Mansikka on yksi parhaista parvekekasveista — helppohoitoinen ja tuottava!

Istutus

Hoito

Ensimmäinen oma mansikka suusta — sen makua ei unohda! 🍓

', + ], + [ + 'id' => 'garden_sunflowers', 'emoji' => '🌻', 'title' => 'Auringonkukat — ilon kasvattajia', + 'category' => 'puutarha', 'subcategory' => ['kukat'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Auringonkukka on helpoin kukkakasvi — siemenet maan ja kesän lopussa on metrin taimi.', + 'body' => '

Auringonkukka piristää koko naapuruston ja kasvaa lähes itsekseen!

Kylvö ja kasvatus

Vinkit

Elokuussa voit korjata siemenet — ne maistuvat paahdettuna! 🌻

', + ], + // ── SISUSTUS ───────────────────────────────────────────── + [ + 'id' => 'deco_flea_market', 'emoji' => '🏺', 'title' => 'Kirpputorilöydöt sisustukseen', + 'category' => 'sisustus', 'subcategory' => ['muut'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Parhaat sisustushelmet löytyvät kirpputoreilta — vinkit mitä etsiä ja miten hyödyntää.', + 'body' => '

Kirpputorit ovat aarreaittoja sisustajalle. Tässä vinkkini parhaiden löytöjen tekemiseen!

Mitä kannattaa etsiä

Maalaamisen taito

Lähes mikä tahansa kirpparilöytö paranee maalaamalla. Kreidemaali tarttuu hyvin ilman pohjamaaliakin ja luo kauniin mattapinnan. Suosikkivärejäni ovat valkoinen, savia ja tummanvihreä.

Parhaat löydöt odottavat sinua! 🔍

', + ], + [ + 'id' => 'deco_candles', 'emoji' => '🕯️', 'title' => 'Kynttilät tunnelman luojina', + 'category' => 'sisustus', 'subcategory' => ['valaistus'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Kynttilät ovat halvin ja tehokkain tapa muuttaa huoneen tunnelma — vinkit niiden käyttöön.', + 'body' => '

Kynttilät ovat sisustuksen salaisin ase. Tässä miten käytän niitä kotonani:

Ryhmittely toimii

Älä laita yksittäisiä kynttilöitä ympäri huonetta — ryhmittele niitä kolmen tai viiden ryhmiin. Eri korkuiset kynttilät samalla tasolla luovat kauniin asetelman.

Kynttilänjalat

Turvallisuus

Hämärässä kynttilänvalossa kaikki tuntuu paremmalta. 🕯️

', + ], + [ + 'id' => 'deco_gallery_wall', 'emoji' => '🖼️', 'title' => 'Gallerioseinä kotiin — näin se onnistuu', + 'category' => 'sisustus', 'subcategory' => ['diy'], 'author' => 'Sinikka', 'type' => 'post', + 'desc' => 'Gallerioseinä on tehokkain tapa tuoda persoonallisuutta kotiin. Tässä ohjeet suunnitteluun ja toteutukseen.', + 'body' => '

Gallerioseinä kuulostaa hankalalta mutta onnistuu helposti kun suunnittelee ensin!

Suunnittelu

  1. Valitse seinä — mieluiten suuri yhtenäinen pinta
  2. Kokoa taulut, valokuvat, peilit — sekoita rohkeasti eri kokoja
  3. Asettele ne ensin lattialle ja kokeile erilaisia järjestyksiä
  4. Ota kuva puhelimella kun löydät mieluisan järjestyksen

Ripustus

Oma gallerioseinä on kuin kotimuseo parhaista muistoistasi! 🖼️

', + ], + // ── KIRJAT ─────────────────────────────────────────────── + [ + 'id' => 'book_summer_reads', 'emoji' => '📖', 'title' => 'Kesän lukuvinkit — kirjoja jotka upposi', + 'category' => 'kirjat', 'subcategory' => ['romaanit'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Kolme kirjaa joihin upposi tänä kesänä — vaihtelevaa luettavaa eri mielentiloihin.', + 'body' => '

Kesä on parasta lukuaikaa. Tässä kolme kirjaa jotka pysäyttivät minut:

1. Jännitys

Pohjoismainen jännityskirjallisuus ei petä koskaan. Tunnelma, kylmä ilmasto ja monimutkaiset hahmot tekevät siitä koukuttavaa. Etsi kirjastosta suomalaisia tai ruotsalaisia rikosromaaneja.

2. Kevyt kesälukeminen

Välillä tarvitaan kirja jossa on hyvä loppu. Romantiikka tai humoristinen kotimainen proosa sopii täydellisesti mökkilaiturin tunnelmaan.

3. Tarina joka jäi mieleen

Paras kesäkirja on se johon palaa ajatuksissaan vielä syksyllä. Sellainen löytyy usein yllättäen — anna kirjaston vinkata!

Hyvää lukuhetkeä! 📚

', + ], + [ + 'id' => 'book_audiobooks', 'emoji' => '🎧', 'title' => 'Äänikirjat — luen nyt enemmän kuin koskaan', + 'category' => 'kirjat', 'subcategory' => ['muut'], 'author' => 'Sinikka', 'type' => 'post', + 'desc' => 'Äänikirjat muuttivat tapani "lukea" — kuuntelen nykyään keittiössä, lenkillä ja käsitöitä tehdessä.', + 'body' => '

Äänikirjat ovat mullistaneet lukuharrastukseni. Tässä miksi suosittelen:

Milloin kuuntelen

Palvelut

Vinkki: Aloita hitaammalla puhenopeudella (0.9×) jos et ole tottunut. Sopeutut nopeasti ja voit nostaa tahdin! 🎧

', + ], + // ── HYVINVOINTI ────────────────────────────────────────── + [ + 'id' => 'wellness_morning', 'emoji' => '🌅', 'title' => 'Aamurutiini joka oikeasti toimii', + 'category' => 'hyvinvointi', 'subcategory' => ['mieli'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Kolme pientä muutosta aamuun jotka muuttivat koko päivän laadun.', + 'body' => '

Olen kokeillut monia aamurutiinejä. Tässä se mikä oikeasti toimii minulle:

1. Puhelin pois ensimmäiseksi puoleksi tunniksi

En katso puhelinta ennen kuin olen juonut kahvin. Tuntuu aluksi vaikealta, mutta mieli on paljon rauhallisempi koko aamun.

2. Lasi vettä heti herätessä

Ennen kahvia. Keho on kuivunut yön aikana ja vesi käynnistää aineenvaihdunnan.

3. Jokin asia joka ilahduttaa

Minulle se on rauhallinen kahvihetki ikkunan ääressä. Sinulle se voi olla lenkki, meditaatio tai hyvä podcast. Viisi minuuttia riittää.

Et tarvitse täydellistä aamurutiinia — tarvitset vain kolme pientä asiaa. 🌅

', + ], + [ + 'id' => 'wellness_yoga', 'emoji' => '🧘', 'title' => 'Kotijoogaa aloittelijalle — 15 min päivässä', + 'category' => 'hyvinvointi', 'subcategory' => ['liikunta'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Et tarvitse joogastudiota tai erityisiä vaatteita — tässä helppo aloitus kotona.', + 'body' => '

Jooga tuntuu pelottavalta aloittaa mutta on itse asiassa hyvin helppo! Tässä oma 15 min aloittelijan ohjelma:

Alkuasento: Lapsen asento (Balasana)

Polvillaan, istuen kantapäillä, kädet edessä lattialla. Hengitä syvään 5 kertaa. Rentouttaa selkää ja rauhoittaa mielen.

Koira katsoo alas (Downward Dog)

Kädet ja jalat lattialla, lantio ylös — muodostuu kolmio. Kantapäät kohti lattiaa (ei haittaa vaikka eivät yletä). 5 hengitystä.

Soturi I (Warrior I)

Hyvä asento alaraajoihin. Yksi jalka eteen, toinen taakse, kädet ylös. Pidä 5 hengitystä, vaihda puoli.

YouTube on täynnä ilmaisia aloittelijaohjeita — hae "jooga aloittelijoille suomi"! 🧘

', + ], + [ + 'id' => 'wellness_sleep', 'emoji' => '😴', 'title' => 'Parempi uni — vinkit jotka toimivat', + 'category' => 'hyvinvointi', 'subcategory' => ['uni'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Nukuin huonosti vuosia ennen kuin opin nämä yksinkertaiset asiat.', + 'body' => '

Uni on tärkein hyvinvoinnin pilari, mutta niin monelle se on haasteellista. Tässä mitä minulle toimi:

Illalla

Aamulla

Nukkuminen ei parane yhdessä yössä, mutta jo viikon rutiinilla huomaa eron. 😴

', + ], + [ + 'id' => 'wellness_forest', 'emoji' => '🌲', 'title' => 'Metsäkävelyjen taika', + 'category' => 'hyvinvointi', 'subcategory' => ['liikunta', 'mieli'], 'author' => 'Sinikka', 'type' => 'post', + 'desc' => 'Tutkimukset vahvistavat sen minkä jokainen suomalainen jo tietää: metsässä oleminen tekee hyvää.', + 'body' => '

Olen alkanut käydä metsässä vähintään kerran viikossa, ja muutos hyvinvoinnissani on selvä.

Miksi metsä auttaa?

Miten lähden metsään?

En lataa podcastia. En kuuntele musiikkia. Vain minä ja metsä. Aluksi hiljaisuus tuntuu oudolta — pian se tuntuu parhaimmalta asialta maailmassa.

Jopa 20 minuuttia metsässä laskee verenpainetta. Kokeile! 🌲

', + ], + // ── LEMMIKIT ───────────────────────────────────────────── + [ + 'id' => 'pet_dog_training', 'emoji' => '🐕', 'title' => 'Koiran peruskoulutus kotona', + 'category' => 'lemmikit', 'subcategory' => ['koirat'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Istu, maahan ja paikka onnistuvat kotona ilman kouluttajaa — kärsivällisyys on avain.', + 'body' => '

Kouluttanut koiriani itse jo 15 vuotta. Tässä parhaat peruskäskyt ja vinkit:

Perusperiaatteet

Istu-käsky

  1. Pidä herkku nenän edessä
  2. Vie herkku hitaasti koiran pään yli taaksepäin
  3. Koira istuu automaattisesti seuratessaan herkkua
  4. Sano "istu" juuri kun takamus osuu lattiaan
  5. Palkitse heti!

Koiran kouluttaminen on mukavaa yhdessäoloa. Nauti siitä! 🐕

', + ], + [ + 'id' => 'pet_cat_enrichment', 'emoji' => '🐈', 'title' => 'Kissan elämää rikastuttavat aktiviteetit', + 'category' => 'lemmikit', 'subcategory' => ['kissat'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Sisäkissa tarvitsee virikkeita — nämä helpot ideat pitävät kissan virkeänä ja onnellisena.', + 'body' => '

Sisäkissa elää pitkän ja terveen elämän, mutta tarvitsee virikkeita. Tässä mitä meillä toimii:

Päivittäiset leikkituokiot

Ympäristön rikastaminen

15 minuuttia leikkiä päivässä tekee isoja ihmeitä! 🐈

', + ], + [ + 'id' => 'pet_winter', 'emoji' => '❄️', 'title' => 'Lemmikki talvella — vinkit kylmään aikaan', + 'category' => 'lemmikit', 'subcategory' => ['muut'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Kylmä talvi tuo omat haasteensa lemmikkien hoidossa — nämä vinkit auttavat.', + 'body' => '

Suomen talvi on rankka sekä meille että lemmikeillämme. Tässä mitä olen oppinut:

Koiran talvihoito

Kissan talvi

Lemmikki ei valita — sinun tehtäväsi on huomata! ❄️

', + ], + // ── KASVIT ─────────────────────────────────────────────── + [ + 'id' => 'plant_beginners', 'emoji' => '🪴', 'title' => 'Helpoimmat huonekasvit — ei voi tappaa', + 'category' => 'kasvit', 'subcategory' => ['huonekasvit'], 'author' => 'Sinikka', 'type' => 'post', + 'desc' => 'Jos olet tappanu jokaisen kasvin jonka olet ostanut, nämä lajikkeet ovat sinulle.', + 'body' => '

Kaikki voivat kasvattaa huonekasveja! Avain on valita oikea kasvi oikeaan paikkaan.

Top 4 helpointa

Yleisin virhe

Liikakastelu tappaa enemmän kasveja kuin kuivuus. Epäillessäsi — älä kastele. Enemmän on harvoin parempi. 💧

', + ], + [ + 'id' => 'plant_monstera', 'emoji' => '🌿', 'title' => 'Monstera — kuningattaren hoito-opas', + 'category' => 'kasvit', 'subcategory' => ['huonekasvit'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Monstera deliciosa on tämän hetken suosituin huonekasvi — ja hyvästä syystä. Tässä kaikki mitä sen hoidosta pitää tietää.', + 'body' => '

Monstera on upea kasvi johon rakastuin heti. Tässä mitä olen oppinut sen hoidosta:

Valo

Epäsuora kirkas valo on paras. Suora aurinko polttaa lehdet. Sopii hyvin ikkunan viereen etelä- tai länsiseinustalle.

Kastelu

Kastele kun ylimmäinen 5 cm multaa on kuivaa. Talvella harvemmin kuin kesällä. Käytä huoneenlämpöistä vettä.

Lannoitus

Kasvukaudella (maalis–elokuu) kerran kuussa nesteylannoitteella. Talvella ei tarvita.

Tukikeppi

Monstera haluaa kiivetä. Sammalpatsas (moss pole) pitää kasvun pystysuorana ja lehdet kasvavat isommiksi!

Palkitsevin kasvi jonka minulla on. 🌿

', + ], + [ + 'id' => 'plant_seeds', 'emoji' => '🌱', 'title' => 'Kasvien kasvatus siemenistä — kevätprojekti', + 'category' => 'kasvit', 'subcategory' => ['puutarhakasvit'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Oman kasvin kasvattaminen siemenestä on tyydyttävintä mitä puutarhassa voi tehdä.', + 'body' => '

Kun ensimmäinen oma taimi nousee mullasta, tuntuu kuin olisi luonut jotain ihmeellistä.

Milloin aloittaa?

Helmikuu–maaliskuu on hyvä aika aloittaa sisäkylvöt. Taimet siirretään ulos toukokuussa hallojen jälkeen.

Mitä tarvitaan?

Helpot aloittelijakasvit siemenestä

Aloita pienestä, nauti prosessista! 🌱

', + ], + // ── MATKUSTUS ──────────────────────────────────────────── + [ + 'id' => 'travel_lapland', 'emoji' => '🏔️', 'title' => 'Lappi talvella — ensikertalaiselle', + 'category' => 'matkustus', 'subcategory' => ['suomi'], 'author' => 'Tiina K.', 'type' => 'post', + 'desc' => 'Lapin talvimatka on elämys — mutta se kannattaa suunnitella etukäteen. Tässä vinkit ensimmäiselle kerralle.', + 'body' => '

Kävin Lapissa talvella ensimmäistä kertaa viime vuonna. Ei jäänyt viimeiseksi! Tässä mitä opin:

Milloin mennä?

Joulukuu–tammikuu: Kaamos, revontulet, luminen maisema. Kylmintä.
Helmikuu–maaliskuu: Aurinkoisempaa, revontulien sesonki, hieman lämpimämpää. Suosikkini!

Mitä tehdä?

Vaatetus

Kerrosvaatetus on avain. Villakerros, fleece, tuulensuoja ja toppatakki päälle. Kunnolliset talvikengät — älä aliarvio! 🧥

', + ], + [ + 'id' => 'travel_tallinn', 'emoji' => '🏛️', 'title' => 'Tallinna viikonlopuksi — parhaat vinkit', + 'category' => 'matkustus', 'subcategory' => ['eurooppa'], 'author' => 'Maija-Liisa', 'type' => 'post', + 'desc' => 'Tallinna on ihanteellinen lähimatka — laivalla sinne, historiallinen vanha kaupunki, hyvä ruoka.', + 'body' => '

Tallinna on suomalaisten klassinen kohde syystä. Tässä omat suosikkini:

Vanha kaupunki

Raatihuoneentori on must — mutta mene sinne aamulla ennen turistiruuhkaa. Illalla torilla on paljon baareja, päivällä enemmän tilaa ihailla arkkitehtuuria.

Syöminen

Käytännön vinkit

', + ], + [ + 'id' => 'travel_saaristo', 'emoji' => '⛵', 'title' => 'Saaristo-Suomi kesällä — veneellä tai laivalla', + 'category' => 'matkustus', 'subcategory' => ['suomi'], 'author' => 'Riitta H.', 'type' => 'post', + 'desc' => 'Suomen saaristo on yksi maailman kauneimmista — ja helposti saavutettavissa myös ilman venettä.', + 'body' => '

Saaristo kesällä on suomalaisen maiseman parhaimmistoa. Tässä miten pääset nauttimaan siitä:

Ilman venettä

Veneen kanssa

Jos sinulla on vene tai pääset tutun kyydissä, avautuvat saariston parhaat paikat. Pienet luodot, uimarannat joihin ei muuten pääse, hiljaiset lahdet — se on Suomea parhaimmillaan.

Saaristo odottaa! ⛵

', + ], ]; } @@ -342,6 +552,14 @@ function getOrInitCategories(): array { } } unset($cat); + // Also append brand-new default categories that don't exist in file yet + $existingCatIds = array_column($cats, 'id'); + foreach ($defaults as $def) { + if (!in_array($def['id'], $existingCatIds)) { + $cats[] = $def; + $changed = true; + } + } if ($changed) writeData('categories.json', $cats); return $cats; }