The Achilles' heel of eZ Publish is the template system subframework that cannot, and should not, be overrated, and that is used as a true programming language.
For this reason, we should not have templates with very complex logic. The templates should only render HTML data, and not involve any kind of business logic.
If the predefined objects of eZ Publish that we can use in our templates are not sufficient to publish the data that we want to represent, we should move the business logic either inside an operator or function, or create a new module.
A classic error that many developers make is to perform many queries in a single template file. It is not recommended to have more than two queries within the same template. If we need more than two queries we have to use a template operator or a custom fetch function, which are much faster to execute.
For example, if we have to print the children of a node, we should use the $node.children
attribute, rather than making...