Learning: The Lego Approach
eZ publish is a bit like lego. It provides a clean base and a series of “blocks” that you can use to create your solution. How you combine these blocks will determine how the system works. Most of what you’ll need is already provided in the framework but if you need to, you can add your own custom blocks to achieve what you need.
So, what do I mean by blocks? There are three types of blocks
- data blocks
- display blocks
- function blocks
Content Blocks
The content blocks are formed by data types that combine to form content types. These are the basis of the system. Being a content management system, content is the core of all solutions.
The data types already exist within eZ publish, you simply select a number of them together to create a content class. The content class is like a table in a database. This define the structure of the content that the system will store.
Display Blocks
The display blocks are templates that combine to form a page. A template is a combination of html and ez publish code.
A template get the content from content classes and organises ii to produce html output.
A template will often contain other templates to create the final html output. Eg. a template that shows a listing of news items will use a loop that contains another template that shows a single news item to produce a list of news items.
Functional Blocks
eZ publish contains a number of inbuilt modules that provide blocks of common functionality required in a content management system. A good example is the “search” module. This allows you to search all content in the database by keyword and return a list of results. There’s no need to build your own search.
Other modules include, user management, login, view, edit…etc And, you can create your own modules if there’s custom functionality that your solution requires
It’s through the configuration of the content, display and functional blocks in eZ publish that you have incredibly flexibility to produce solutions. And if there’s anything missing, the system can be extended to meet your exact needs without having to touch the core code, making upgrades much easier.