Repository navigation
Snowdog's menus on a rendered page come from documents - #37
Merged
Merged
Conversation
Every rendered page read its Snowdog menus, their nodes, and the url rewrites and categories of the category nodes from the database. A menu feed now writes the menus as documents per store view, a trigger on the node groups table exports a menu whose node groups change, and the categories feed carries the count a category node reads, so a page served from documents renders its menus without SQL. The module registers only where Snowdog_Menu is installed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…reload A caller that clears the children collection of a category served from its document and loads it again, as Snowdog's category child node does, ran the collection's select, which carries no filter, and got every category of the catalog. The collection now gives its own categories back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A menu with product, CMS page or CMS block nodes still read the tables for them on a page served from documents. The product node reads the product and url rewrite documents and shows the price its listing card advertises, the CMS nodes read the pages and blocks the menu feed now exports with the menu, and triggers on the CMS tables export the menus that name a changed page or block. The unit job installs Snowdog for the module's tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every rendered page read its Snowdog menus, their nodes, and the url rewrites and categories of the category nodes from the database. A menu feed now writes the menus as documents per store view, a trigger on the node groups table exports a menu whose node groups change, and the categories feed carries the count a category node reads, so a page served from documents renders its menus without SQL. The module registers only where Snowdog_Menu is installed.
Written by Claude Code:
CatalogStorefrontSnowdogMenuserves Snowdog_Menu's reads on a rendered page from documents, under the ProductFrontend mode and strict:MenuRepositoryInterface::get(),NodeRepositoryInterface::getByMenu()and thefetchData()of every node type that reads (category, product, CMS page, CMS block).snowdogMenus(indexercatalog_storefront_snowdog_menus, rebuild entitysnowdog_menu): a document per active menu in each store view it is assigned to, directly or through store 0, with the active pages and blocks its CMS nodes name per store, and a marker the rebuild seeds.Model/Mview/MenuLookupSubscriptionmarks the menus of a row that names no menu: a node's customer groups, a page or block and their store rows.menuProductCount, the rows of the category in the category product index, with a subscription oncatalog_category_product.CategoryDocuments, products from the product documents. A product node's price is the price its listing card advertises (core's final price on the model built from the document; the minimal amount of a bundle; the cheapest product of a grouped product; as the tax and fixed product tax renderers display it), not the index'smin_price.CategoryFrontend\Model\LoadedCollectiongives its categories back on a reload afterclear(): its select has no filter, so a category child node listed every category.snowdog_menu_menu_<id>after a menu write andcat_c_p_<id>after a categories write.registration.phpregisters the module only whereSnowdog\Menu\Api\MenuRepositoryInterfaceexists;snowdog/module-menuis suggested, not required. The unit job installs it.Listing parity 4 of 4 and detail parity 6 of 6 identical with a menu that holds every node type. The document path runs no SQL for any node type.
🤖 Generated with Claude Code