Related issue
The same format is being used for 90% of the build hooks, yet no build hook exists for many routes. By modifying a few anomalies, I think the same function could be called in the render middleware for every route's build hook. Which woul...
GitHub (github.com)
As discussed in the issue, we had a bunch of hooks to modify a page on some routes like filter:recent.build
. These were added as required but most pages didn't have a hook so if you needed one you would have to ask us to add it and wait for the next release. With the above change every route has a hook. The hook name is derived from the template name passed to the res.render(template, data);
method. For example if your template is named myAwesomePage
, you render it with res.render('myAwesomePage', data);
and the hook that will be fired is filter:myAwesomePage.build
Every hook gets 3 parameters {req: req, res: res, templateData: data}
, data is the parameter you pass into the res.render
method.
We had a few inconsistencies in the parameters passed to the hook and the hook name below are the changes that needs to be fixed if you have a plugin that is listening to these hooks.
filter:groups.build
is now called filter:group/details.build
as that is the correct name for that template.
filter:popular.build
used to pass in a extra term
parameter, this moved into the templateData parameter.
filter:header.build
this is removed it was deprecated a while ago. Use filter:navigation.available
instead.
filter:search.build
parameters changed, data is no longer passed in use req.query and req.params instead. results is now the templateData parameter.
Feel free to ask any questions if anything isn't clear.