Products megamenu as a data-driven catalog with a Solr product type-ahead
- evo_megamenu_json stays project-neutral: new panel layout "catalog"; for such entries the MenuBuilder dispatches the new PSR-14 event BuildCatalogEvent and emits whatever a listener sets as `catalog` (null without a listener). The entry's teaser cards serve as the featured tiles; the teaser inline field now also shows for "catalog", and the entry form reloads when the layout changes. README section "Layout catalog" - VITEC listener ProvideProductCatalog fills it, modelled on the Ross Video products menu: main categories below the "Product" root, their subcategories as groups, products with a plain-text one-line teaser; same visibility rules as the product list, Product Finder links (/products?cat=&subcat=), empty categories and groups left out, three queries for the whole catalog - Product type-ahead GET /_json/?type=7385&q= (USER_INT page type, ProductMenuSearchJsonRenderer): Solr restricted to products, last term completed as a prefix, up to six product cards plus their titles as autocomplete suggestions; endpoint announced in catalog.search - Spec v1.23 (clause 7.16: product type-ahead)
This commit is contained in:
1 parent
b5fcdb2b5a
commit
887caed2aa
8 files changed
+502
-6
No files matched your search
@@ -35,6 +35,7 @@
|
||||
| 1.20 | 2026‑10‑01 | **Interface change (additive).** Sub-market page template: frontend layout 21 with one colPos group per design section (`colPos110`..`colPos160`, clause 7.17); new Content Blocks `vitec_markethero`, `vitec_marketintro`, `vitec_marketinsights`; new plugin `vitec_productfeature` (key `productfeature`, one product in the 7.15.2 item shape); story cards gained `quote`/`quotePerson`/`quoteRole`; `vitec_usecaselist` gained the layout value `testimonials`; `vitec_productlist` gained hand-picked product selection (editor order, category filter ignored). Field semantics: Template_Sub-Market_Spezifikation_2026-10-01.md. |
|
||||
| 1.21 | 2026‑10‑07 | **Interface change (additive) and corpus change.** Search results carry `image` (processed 640 px tile image, root-relative, `null` for types without one). Corpus: story documents now include their body (the inline `tt_content` children), page and story content include the text columns of the market/solution Content Blocks and the `vitec_items`/`vitec_faq_items` collection children; solutions are indexed. News rank by publication date (`datetime`; `crdate` is the import date) with an age-decay boost. EXT:solr upgraded from 14.0.0-RC1 to 14.0.2 final (TYPO3 and the Solr image). Editorial: 7.16 now states the `/_json` prefix the URL swap introduced, the `type` vocabulary lists `solution` (delivered since 1.14), and the footer had been stuck at v1.19. |
|
||||
| 1.22 | 2026‑10‑09 | **Interface change (additive) and defect fix.** Search cards ("best bets", 7.16): editorial `tx_vitec_domain_model_searchcard` records with keyword lists; the search payload gained `cards` (max. 3, priority-ordered, page 1 only, synonym-aware keyword match; record cards mirror the record’s indexed document, filled card fields override). Defect fix: a request without `q` returned an empty body instead of the documented empty shape (`stdClass` resolved inside the renderer namespace). |
|
||||
| 1.23 | 2026‑10‑09 | **New interface (additive).** Product type-ahead for the megamenu catalog panel: lean page type `?type=7385&q=` (7.16) returning `suggestions` and up to six product cards via Solr, last term completed as a prefix. The megamenu gained the panel layout `catalog`, filled by the VITEC listener `ProvideProductCatalog` (main categories → subcategory groups → products with one-line teasers). |
|
||||
|
||||
This document is drafted in the style of, and adopts the terminology conventions of,
|
||||
ISO/IEC/IEEE 42010 (architecture description), ISO/IEC/IEEE 26514 (information for
|
||||
@@ -1172,6 +1173,28 @@ regular `/_json/search?q=` request. Top-result documents are deliberately disabl
|
||||
(`showTopResults = 0`): their shape is hardcoded upstream and carries the raw
|
||||
document type and the full indexed content.
|
||||
|
||||
**Product type-ahead (megamenu, since v1.23).**
|
||||
`GET /_json/?type=7385&q=<input>` answers as a lean JSON page type
|
||||
(`ProductMenuSearchJsonRenderer`, USER_INT):
|
||||
|
||||
```json
|
||||
{ "query": "mgw d",
|
||||
"suggestions": [ "MGW Diamond+ OG", "MGW Diamond" ],
|
||||
"products": [ { "title": "MGW Diamond+ OG", "teaser": "Broadcast-grade 4K HEVC …",
|
||||
"image": "/fileadmin/_processed_/…", "url": "/product/…" } ] }
|
||||
```
|
||||
|
||||
It runs through Solr restricted to product documents; the last term is
|
||||
completed as a prefix, so cards appear while typing (inputs below two
|
||||
characters yield the empty shape). At most six products, one card per
|
||||
product; `suggestions` are their titles for the autocomplete list. `teaser`
|
||||
is the product's plain-text one-liner from the record (≤ 120 characters),
|
||||
`image` the indexed 640 px tile or `null`. The endpoint and its parameters
|
||||
travel with the megamenu catalog payload (`catalog.search`); the catalog
|
||||
itself (`layout: "catalog"`, categories → groups → products) is produced by
|
||||
the `ProvideProductCatalog` listener of EXT:evo_megamenu_json’s
|
||||
`BuildCatalogEvent` - see that extension’s README.
|
||||
|
||||
**Operations.** Indexing runs automatically: record and page saves enter the
|
||||
index queue, a scheduler task (Index Queue Worker, every 5 minutes) pushes them
|
||||
to Solr; the CLI command `vitec:solr-index` (with `--initialize` and `--debug`)
|
||||
@@ -1589,4 +1612,4 @@ remediation.
|
||||
- Header convention — the uniform header section across CEs, plugins and containers.
|
||||
- `Configuration/Sets/Vitecset/setup.typoscript` — the single TypoScript entry point.
|
||||
|
||||
*End of document EVO‑VITEC‑HL‑001 v1.22.*
|
||||
*End of document EVO‑VITEC‑HL‑001 v1.23.*
|
||||
Reference in new issue
Block a user