De site van omnikids.be. Platte PHP zonder framework of build-stap.
Live op https://www.omnikids.be/ — hosting bij Vimexx (DirectAdmin, web0113.zxcs.nl),
automatisch geüpload via GitHub Actions bij elke push naar main.
| Waar het leeft | Wie past het aan | |
|---|---|---|
| Pagina’s, opmaak, structuur | deze repo | Claude / een ontwikkelaar, via een push |
| Prijzen, kampdata, lesdata, losse teksten, foto’s | op de server (data/content.json, images/foto/) |
Johannes, via /admin |
Daarom staat data/** in de exclude-lijst van de deploy en in .gitignore: een push
mag nooit overschrijven wat via het beheerpaneel is ingevoerd.
images/foto/** staat wél in de deploy. Dat is met opzet: de deploy-actie verwijdert op
de server wat niet meer in de repo zit, dus een uitsluiting zou de foto’s wissen. Een
foto die via /admin geplaatst is, blijft staan zolang het gelijknamige bestand in de repo
niet verandert. Haal nieuwe foto’s af en toe van de server naar de repo, dan staan ze ook
in het versiebeheer.
inc/content.default.json is de terugvalversie: zolang er op de server nog geen
data/content.json bestaat (of als die stuk is), toont de site de waarden daaruit.
index.php, aanbod.php, sportreeksen.php, sportkampen.php,
bewegingsschool.php, chigong.php, over-ons.php, contact.php, privacy.php, 404.phpinschrijven.php + inschrijven-sportkamp.php,
inschrijven-bewegingsschool.php, inschrijven-sportreeks.php, inschrijven-chigong.phpinc/content.php — leest de inhoud in en levert de functies die de pagina’s gebruiken:
ok_tekst(), ok_prijs(), ok_kampen(), ok_periode(), ok_lesdata_html(), ok_mededeling()admin/ — het beheerpaneel (zie hieronder)css/style.css — huisstijl: baby blue #B8E7F6, mid blue #4D96D6, dark navy #263D77js/inschrijven.js — verzending van de formulierenjs/config.js — de enige plaats waar de koppeling met Google Sheets staatapps-script/Code.gs — de code die in Google Apps Script draait (staat hier voor
versiebeheer; ze draait niet op de website)images/ — logo’s als SVG, favicons en og-image.png; images/foto/ zijn de foto’s
die via het beheerpaneel vervangen wordenDe oude .html-adressen sturen via .htaccess met een 301 door naar .php, dus
bestaande links en zoekresultaten blijven werken.
/admin)Aanmelden met één wachtwoord (hash in data/admin.json, buiten de repo).
De eerste keer instellen vraagt een installatiecode die als data/setup-code.txt
op de server klaargezet wordt; na het instellen wist het paneel dat bestand.
Tabbladen:
sep 7 14 21 28). Het aantal lessen wordt geteld en vult {lessen} in.kamp_prijs_uitleg vullen {kamp_kleuters}, {kamp_lagere}
en {kamp_korting} zichzelf in vanuit de prijzen.PLEKKEN bovenaan admin/fotos.php; komt er een
fotoplek bij, dan moet die array mee aangepast worden.content.json (laatste 40).
Terugzetten met één klik. Vervangen foto’s blijven in data/foto-backup/ staan.Let op bij kampprijzen: het bedrag in de betaalmail en de Mollie-betaallink komt
uit apps-script/Code.gs (PRIJS_KLEUTERS, PRIJS_LAGERE_SCHOOL). Verandert een
kampprijs, pas dan ook dat script aan.
De formulieren posten naar het Apps Script-project OmniKids inschrijvingen. Dat
schrijft elke inschrijving in de spreadsheet OmniKids inschrijvingen website —
één tabblad per formulier (Sportkampen, Bewegingsschool, Sportreeks, Chigong) —
en stuurt een betaalverzoek en een bevestiging.
Valt de verbinding weg, dan schakelt het formulier over op e-mail: de ouder krijgt zijn mailprogramma te zien met alle ingevulde gegevens. Er gaat dus nooit een inschrijving verloren.
apps-script/Code.gs aan, plak de code in
het Apps Script-project en publiceer opnieuw via Implementeren → Implementaties
beheren → potloodje → Versie: nieuwe versie. Zo blijft de URL in js/config.js gelijk.setup maakt ontbrekende tabbladen aan met de juiste koppen.verwijderTestrijen wist rijen waarvan de voornaam TEST is.php -S localhost:8000
Zonder data/content.json gebruikt de site vanzelf inc/content.default.json.
inschrijven-sportreeks.php de vrije keuze vervangen door de concrete reeksen
(dag + uur + school).privacy.php nalezen — de tekst is opgesteld op basis van wat de formulieren vragen.