|
|
@@ -3415,6 +3415,57 @@ aantal round trips bij infinite scroll voor 0,01 s. Staat sinds die datum op
|
|
|
`defaults['filter_groups']` op FALSE — **de pager erven ze wél**, dus dit is
|
|
|
één wijziging op de Master voor alle zeven.
|
|
|
|
|
|
+**Cloudflare cachet sinds 2026-09-15 zes publieke endpoints 5 minuten aan de
|
|
|
+edge — reken daarmee bij élke meting én bij elke Drupal-deploy.** Rule
|
|
|
+"FlutterFlow publieke endpoints": `GET` zonder `SESS`-cookie op
|
|
|
+`flutterflowmobiel1.json`, `flutterflow_events.json`,
|
|
|
+`flutterflowmobiel_establishment_info.json`,
|
|
|
+`flutterflowmobiel_establishment_events.json`, `plaatsen.json` en
|
|
|
+`plaatsen_bij_gemeente.json`; Edge TTL 300 s, "Ignore cache-control" (de origin
|
|
|
+stuurt `no-store`). Gemeten: MISS 1,2 s → HIT 0,06–0,09 s. Drie gevolgen:
|
|
|
+- Een `_cb=`-cache-buster omzeilt Cloudflare **én** Drupal's page cache. Een
|
|
|
+ `_cb`-test bewijst dus dat de code klopt, maar zegt niets over wat de app
|
|
|
+ ziet — die krijgt tot 5 min het oude antwoord. Na een deploy: `cc all` **en**
|
|
|
+ de rule purgen.
|
|
|
+- `flutterflowmobiel_establishments.json` hoort er bewust **niet** in (filtert
|
|
|
+ per gebruiker op favorieten). Zet nooit een endpoint in de lijst dat een
|
|
|
+ sessie-afhankelijk antwoord geeft.
|
|
|
+- Basic-Auth-requests worden gewoon meegecachet (HIT gezien met `-u`), dus de
|
|
|
+ cache is gedeeld over alle bezoekers — precies de bedoeling voor deze data.
|
|
|
+
|
|
|
+**`flutterflowmobiel1` accepteert (na deploy van 2026-09-15) ook `zoek=`:** een
|
|
|
+hoofdletterongevoelige `LIKE` op `node.title`, gebouwd in
|
|
|
+`custom_views_query_alter()` naast `datum_van`/`datum_tot`, dus geldig op alle
|
|
|
+zeven displays. Op devbob geverifieerd (jazz → 3, qqqzzz → 0, apostrof veilig).
|
|
|
+Client-side zoeken op Home kan niet: de tabs zijn gepagineerd.
|
|
|
+
|
|
|
+**Een event zonder `plaats` is bijna altijd een kopieermoment-probleem, geen
|
|
|
+kapotte presave.** `custom_node_presave()` kopieert plaats/geo/adres van de
|
|
|
+horecagelegenheid **op het moment dat het event wordt opgeslagen**. Had de zaak
|
|
|
+toen nog geen `field_hor_municipality_town`, dan blijft het event leeg totdat
|
|
|
+het opnieuw wordt opgeslagen (`node_save()` via drush volstaat). Nagemeten
|
|
|
+2026-09-15: 14 willekeurige recente events en 50/50 op `services_1` hadden
|
|
|
+allemaal een plaats — ga dus niet in de module zoeken. De view leest `plaats`
|
|
|
+via `taxonomy_index`, en die wordt alleen voor **gepubliceerde** nodes gevuld.
|
|
|
+
|
|
|
+**Uploads via `bestand_upload/upload` zijn sinds 2026-09-15 tijdelijk
|
|
|
+(`status = 0`).** `file_save_data()` zet standaard `FILE_STATUS_PERMANENT`; de
|
|
|
+resource zet hem daarna terug op 0. `file_field_presave()` maakt het bestand
|
|
|
+permanent zodra `node_save()` het aan een veld hangt; `system_cron` verwijdert
|
|
|
+de rest na 6 uur (`DRUPAL_MAXIMUM_TEMP_FILE_AGE`). Een gebruiker die 6+ uur
|
|
|
+tussen uploaden en indienen laat, verliest dus zijn foto — bewust geaccepteerd.
|
|
|
+Let bij grote foto's op: de app stuurt base64 in een JSON-body (5 MB foto ≈
|
|
|
+7 MB POST), dus `post_max_size` moet daar boven zitten, en de mediakiezer in
|
|
|
+FlutterFlow kan met *Max Width/Height* vooraf verkleinen.
|
|
|
+
|
|
|
+**"Woorden plakken aan elkaar" in een omschrijving zit in de OPGESLAGEN body,
|
|
|
+niet in Views of `_custom_clean_html()`.** Bevestigd 2026-09-15: de rauwe body
|
|
|
+van nid 222090 bevat al `<p>Onderdeel vanElectronic` — er is geen tag die een
|
|
|
+spatie had kunnen worden. Het "Onderdeel van"+serienaam-patroon komt uit de
|
|
|
+importer; Bob's besluit: laten zitten. Diagnosestap die dit in één keer
|
|
|
+uitwijst: haal de node via `flutterflow_events.json?nid=…` op (die display
|
|
|
+maakt `body` niet schoon) en kijk of het plakwerk daar al in de HTML staat.
|
|
|
+
|
|
|
**Views is niet de performance-bottleneck — gemeten 2026-09-14, voordat je een
|
|
|
custom-module-endpoint bouwt om Views te vervangen.** 3x per endpoint met
|
|
|
cache-buster op productie: een **custom** Services-resource die twaalf
|