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
@@ -974,6 +974,24 @@ tx_solr_suggest {
|
||||
}
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Product type-ahead of the megamenu catalog panel (2026-10-09):
|
||||
# GET /_json/?type=7385&q=<input> -> { query, suggestions[], products[] }
|
||||
# (ProductMenuSearchJsonRenderer). USER_INT for the same reason as 7384:
|
||||
# every keystroke is a new query. `q` is excluded from cHash (ext_localconf).
|
||||
# =============================================================================
|
||||
vitec_product_menu_search = PAGE
|
||||
vitec_product_menu_search {
|
||||
typeNum = 7385
|
||||
config {
|
||||
disableAllHeaderCode = 1
|
||||
additionalHeaders.10.header = Content-Type: application/json; charset=utf-8
|
||||
}
|
||||
|
||||
10 = USER_INT
|
||||
10.userFunc = Evomedien\Vitec\UserFunc\ProductMenuSearchJsonRenderer->render
|
||||
}
|
||||
|
||||
plugin.tx_solr.suggest = 1
|
||||
plugin.tx_solr.suggest {
|
||||
numberOfSuggestions = 8
|
||||
|
||||
Reference in new issue
Block a user