Bladeren bron

132-K: exacte vindplaatsen en fix opgezocht; nuance bij 132-A

De &-bug zit op twee plekken met identieke code: custom.favorites_flag.inc
regel 316 (favorieten_horeca) en custom.evenementen_aanmaken.inc regel 306
(mijn_horecagelegenheden). Beide bouwen hun resultaat zelf op uit de view en
lopen dus niet langs custom_services_request_postprocess_alter; categorie is
in beide het enige veld zonder _custom_clean_html.

Bij 132-A toegevoegd dat de Agenda-tab wel scrollt, maar dat de knop Alle
horecagelegenheden op alle vier de tabs over de inhoud heen ligt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 16 uur geleden
bovenliggende
commit
eb11d3fcf1
1 gewijzigde bestanden met toevoegingen van 44 en 0 verwijderingen
  1. 44 0
      TASKS.md

+ 44 - 0
TASKS.md

@@ -383,6 +383,12 @@ Info-tab zijn **telefoonnummer, e-mail en de volledige "over"-tekst** niet te
 bereiken — de regel *Openingstijden …* wordt middendoor gesneden en er is geen
 scroll. Op tablet valt het minder op, maar het speelt daar ook.
 
+Nuance na extra meting: de **Agenda-tab scrollt wél** (die heeft een eigen
+lijstwidget), maar ook daar legt de knop zich over de onderste kaarten heen. Het
+zijn dus twee losse dingen: (1) Info/Links/Bezorgen missen scroll, (2) de knop
+*Alle horecagelegenheden* overlapt op álle vier de tabs de inhoud in plaats van
+eronder mee te schuiven.
+
 Fix: de Column van elke tab scrollbaar maken (let op het recept in `CLAUDE.md`:
 eerst elke `Expanded` eruit, anders weigert FlutterFlow het).
 
@@ -543,6 +549,44 @@ Nagemeten in de rauwe respons:
 dit endpoint niet in de `$fields_to_clean`-lijst. De views leveren diezelfde
 categorie wél schoon uit ("Kunst & Cultuur"), dus het is endpoint-specifiek.
 
+**Vindplaats opgezocht op de server (2026-09-22, alleen gelezen).** Het zit op
+**twee** plekken, met identieke code — beide bouwen hun resultaat zélf op uit
+`views_get_view('flutterflowmobiel_establishments')` en draaien dus niet langs de
+opschoning in `custom_services_request_postprocess_alter()`, ondanks wat de
+docblock erboven suggereert:
+
+| bestand | regel | resource |
+|---|---|---|
+| `custom.favorites_flag.inc` | **316** | `favorieten_horeca` (Favorieten tab 3) |
+| `custom.evenementen_aanmaken.inc` | **306** | `mijn_horecagelegenheden` (Mijn Profiel) |
+
+In beide gevallen krijgen `titel`, `adres` en `plaats` netjes
+`_custom_clean_html()` mee en **`categorie` als enige niet**:
+
+```php
+'plaats'    => _custom_clean_html($plaats),
+'logo'      => str_replace('devbob.', '', $logo),
+'categorie' => _custom_parse_komma_to_array($categorie_raw),   // <- hier
+```
+
+Fix, één regel per bestand:
+
+```php
+'categorie' => _custom_clean_html(_custom_parse_komma_to_array($categorie_raw)),
+```
+
+**Decodeer ná het splitsen, niet ervóór.** `_custom_clean_html()` handelt arrays
+recursief af (`custom.module:1860`), dus dit werkt direct op de lijst. Zou je
+`$categorie_raw` eerst decoderen, dan kan een `&#44;` een extra komma opleveren
+en daarmee de split op `', '` stukmaken.
+
+Het tweede geval (`mijn_horecagelegenheden`) is niet visueel bevestigd — daarvoor
+moet je eigen zaak toevallig een `&` in een categorie hebben — maar de code is
+regel voor regel dezelfde, dus fix ze samen.
+
+De volledige path op de server:
+`/data/disk/o1/static/uitgaanskrant/sites/all/modules/custom/`.
+
 Controleer in dezelfde moeite de andere favorieten-resources
 (`favorieten_agenda.json`, `favorieten_gemeenten.json`) — in de opgevangen
 agenda-respons zaten geen entiteiten, maar daar zat toevallig ook geen `&` in.