CGC nieuws en agenda¶
Doel & URL('s)¶
Nieuwsberichten en agenda-items van het CGC.
| URL | Scherm |
|---|---|
/cornelis-graafland-centrum/nieuws/ |
Nieuwsoverzicht (H1 "Nieuws") |
/cornelis-graafland-centrum/nieuws/page/2/ |
Paginering |
/cornelis-graafland-centrum/nieuws/<slug>/ |
Nieuws-single (cgc-post, 20 items) |
/cornelis-graafland-centrum/agenda/ |
Agenda-overzicht (H1 "Agenda") |
/cornelis-graafland-centrum/agenda/<slug>/ |
Event-single (cgc-event, 1 item) |
Voor wie: alle bezoekers (publiek).
Cross-CPT-query met Websites-filter
De nieuws- en agenda-overzichten queryen alle nieuws- resp.
event-post-types (gb-post/wv-post/cgc-post resp. gb-event/
wv-event/cgc-event) met meta-filter Websites LIKE 'CGC' — het
checkbox-veld "Websites" op elk nieuws-/event-item bepaalt dus op welke
subsite(s) het verschijnt. Items van een andere subsite krijgen in de lijst
?t=CGC achter hun permalink en openen (bij nieuws) in een nieuw tabblad.
Sortering: menu_order ASC, date DESC.
Opbouw¶
Nieuwsoverzicht /cornelis-graafland-centrum/nieuws/¶
Layout met rechterzijbalk:
- H1 "Nieuws".
- Eerste 2 items als grote kaart (
preview-sidebar: afbeelding + intro, afgekapt op 150 tekens); overige items als kleine regelkaart (preview-sidebar-small). - 10 items per pagina; paginering (bij de huidige 20 items: 2 pagina's).
- Zijbalk: CGC "Word vriend"-banner + agenda-blok (alleen bij komende CGC-events; momenteel leeg).
Nieuws-single /cornelis-graafland-centrum/nieuws/<slug>/¶
- Image-header met subtitel+H1-overlay — alleen bij een eigen afbeelding; anders een kale H1.
- Lead-alinea (in de praktijk leeg — het intro-veld bestaat niet meer in de
ACF-groep) en de nieuwstekst (wysiwyg-veld
news_text, verplicht). - Footer: deelknoppen "Deel dit nieuwsbericht: " (Facebook/Twitter/LinkedIn). Een auteursblok bestaat in het template maar verschijnt nooit (zie afwijkingen).
- Zijbalk: downloads (indien gevuld), CGC-banner, agenda-blok (leeg).
Agenda-overzicht /cornelis-graafland-centrum/agenda/¶
- H1 "Agenda".
- Lijst met uitsluitend komende events (minstens één
event_date≥ vandaag, gesorteerd op eerstvolgende datum): de eerste 2 als afbeeldingskaart (preview), volgende als kaart met datumblokje (preview-calender). - Momenteel is de lijst leeg (het enige cgc-event dateert van 5 oktober 2021); er verschijnt dan een lege lijstsectie.
- Zijbalk: alleen de CGC-banner.
Event-single /cornelis-graafland-centrum/agenda/<slug>/¶
- Image-header (alleen bij eigen afbeelding), anders kale H1.
- Lead (
event_intro), tekst (event_text), eventuele componenten. - Footer: deelknoppen "Deel dit evenement: ".
- Zijbalk: infoblok "Informatie" (
c-event-details) met per datum een regel "Datum: {datum}
{tijd} uur", een regel "Locatie: {locatie}" en — alleen indien gevuld — "Kosten: {kosten}".
Databronnen¶
| Veld/bron | Gebruik |
|---|---|
cgc-post (CPT) |
nieuwsberichten; velden news_image, news_image_as_cover, news_text (verplicht), news_related_items, display_in_article_section |
cgc-event (CPT) |
events; velden event_dates (repeater: event_date + event_time), event_image, event_intro, event_text, event_components, event_location |
Meta Websites (checkbox) |
subsite-filter in nieuws-/agenda-query's (LIKE 'CGC') |
ACF-optie CGC_sidebar_banner |
zijbalk-banner |
ACF-optie CGC_fallback_image |
event-afbeelding-fallback in lijsten |
Gedrag & rollen¶
- Volledig publiek; geen rolonderscheid.
- Agenda toont nooit verlopen events (filter op datum ≥ vandaag); de single van een verlopen event blijft wel direct via URL bereikbaar.
- Nieuws-items van andere subsites in de CGC-lijst openen in een nieuw tabblad
met
?t=CGC(zodat de CGC-schil behouden blijft).
Acceptatiecriteria¶
- Als anonieme bezoeker op
/cornelis-graafland-centrum/nieuws/zie ik H1 "Nieuws" met alle nieuwsitems die het website-vinkje "CGC" hebben (over alle nieuws-post-types heen): de eerste 2 als grote kaart met afbeelding en intro (≤ 150 tekens), de rest als kleine kaart; 10 per pagina met paginering. - Als anonieme bezoeker op
/cornelis-graafland-centrum/nieuws/page/2/zie ik de volgende 10 items. - Als anonieme bezoeker verschijnt een nieuwsitem van een andere subsite met website-vinkje "CGC" in de CGC-nieuwslijst; de link bevat
?t=CGCen opent in een nieuw tabblad. - Als anonieme bezoeker op een cgc-post-single met afbeelding zie ik een image-header met titel-overlay; zonder afbeelding een kale H1; daaronder de nieuwstekst en deelknoppen "Deel dit nieuwsbericht".
- Als anonieme bezoeker op
/cornelis-graafland-centrum/agenda/zie ik H1 "Agenda" en uitsluitend events met een datum vandaag of later (website-vinkje "CGC"); zonder komende events is de lijst leeg. - Als redacteur die een cgc-event met toekomstige datum publiceert, verschijnt dat event in het agenda-overzicht (eerste 2 als afbeeldingskaart, volgende met datumblokje) én in het agenda-blok in de zijbalk van CGC-pagina's.
- Als anonieme bezoeker op een cgc-event-single zie ik in de zijbalk het blok "Informatie" met alle datums (elk met tijd en het achtervoegsel "uur"), de locatie en — alleen indien gevuld — de kosten.
- Als anonieme bezoeker blijft de single van een verlopen event (bijv.
/cornelis-graafland-centrum/agenda/plenaire-vergadering/) via de directe URL bereikbaar met HTTP 200.
Bekende afwijkingen¶
Niet nabouwen in Next.js — wel vermelden in het testrapport
- Auteursblok toont nooit op nieuws- en event-singles door een bug
(ongedefinieerde
$hasAuthor-variabele in de Post/Single- en Event/Single-traits). De veldennews_subtitle/news_intro/news_authorbestaan bovendien niet meer in de ACF-groep — de lege lead-alinea op nieuws-singles is daarvan het gevolg. news_componentswordt niet gerenderd: de blocks-partial leest het veldcomponents, terwijl nieuws de flexibele inhoud innews_componentsopslaat. Flexibele nieuws-componenten (gallery/video/downloads enz.) verschijnen dus nooit op een nieuws-single.- De bodyclass van het nieuws- en agenda-archief luidt
post-type-archive-gb-post/-gb-event(gevolg van de cross-CPT-query) — cosmetisch, thema is weltheme-cgc. - SEO-titel van de event-single is "Agenda - Gereformeerde Bond" (archieflabel i.p.v. de eventtitel).
- De ACF-JSON-groep "Evenementen" mist de velden
event_type,event_authorenevent_costsdie de code nog leest (legacy-reads; "Kosten" kan alleen gevuld zijn bij oude data).