Developer Notes
#Project references
- Live site:
https://www.livingwage.org.nz/ - Nation:
nzlivingwage - Site ID:
2077 - Theme name:
FP-LW2026 - Parent theme:
bootstrap_v4 - Theme sync folder:
Dropbox/nzlivingwage/themes/fp-lw2026-6a2207bbfb373eaa4262f111 - Documentation source:
src/docs/living-wage
Main custom theme files
| Area | Files |
|---|---|
| Page assembly and module routing | _z_content.html, _z_module_basic.html |
| Header/navigation | _z_header.html, _z_nav.html, _z_navbar.scss |
| Announcement | _z_announcement_bar.html, _z_announcement_bar.scss |
| Footer | _z_footer.html, _z_footer.scss |
| Logo Grid | _z_module_logo_grid.html, _z_module_logo_grid.scss |
| Employer directory | _z_module_accredited_employers_grid.html, _z_script_api_directory.js, matching SCSS |
| Filter Grid/cards | _z_module_filter_grid.html, _z_card.html, _z_card_setup.html, _z_card_body.html |
| Metadata/indexing/sitemaps | _z_layout_meta_tags.html, _z_page_sitemap*.html |
| Form embeds | _z_widget_123_form.html, _z_page_content.html |
Implementation notes
The Subpage Layout iterates page.children but renders only children for which child.is_supporter_nav? is true. Recognised module tags are routed before the Basic layout fallback.
Basic layouts parse the first layout: tag and expose style: as a CSS class. No Living Wage-specific client style variants are currently defined.
Component descendants of a subpage_layout page are automatically noindexed when they are published and in supporter nav. The ancestor check covers up to five parent levels. page_allow_index overrides only this automatic rule; explicit page_noindex and nav_folder still win.
The custom sitemap duplicates these visibility rules so human and XML output remain aligned with page metadata.
Employer API
The directory calls the Living Wage match-by-tag API and follows its pagination response until no next URL remains. Results are appended, filters are generated from returned fields and the full set is re-sorted with a case-insensitive numeric-aware Intl.Collator after every API page.
The endpoint and access token are embedded in the theme template. Treat the token as configuration even though the client-side request makes it observable; do not copy it into documentation, page content or support messages. Rotate and deploy it through the theme/API owners if exposure policy changes.
Known maintenance considerations
- The theme inherits a broad set of legacy For Purpose modules. This documentation deliberately covers the Living Wage-approved/current set rather than implying every inherited partial is supported for editors.
style:values are parsed but do not currently have documented visual variants.- Card attachments override the Meta image when an image attachment is present.
- The Filter Grid's keyword search checks headlines only.
- SearchIQ contains site-specific configuration and reserved slugs; review the integration before changing search pages.
- Footer social URLs are hardcoded in
_z_footer.html. - Donation (v2) has significant custom template styling and JavaScript. Re-test amount selection, returning-donor state, validation and payment submission after template edits.
Smoke-test checklist after a theme deployment
- Header dropdowns, mobile menu and Donate CTA.
- Global announcement internal and external links.
- Homepage module order and responsive layouts.
- Team, Logo and Testimonial child ordering.
- News keyword search, filters and sorting.
- Upcoming Event date/venue cards.
- Employer API pagination, A–Z order, location/industry filters and links.
- 123FormBuilder load and a permitted test submission.
- Donation amount/frequency selection and approved payment test.
noindexand internal-search metadata on component/style-guide pages.