The website_base is a boilerplate for kickstarting new projects. It contains a set of preselected, commonly used extensions, the latest project_base version and boilerplate for the theme extensions. The theme extension boilerplate will also contain the latest set of our commonly used frontend modules. The theme, which means the CSS / JS structure and the provided content-elements, are entirely based on Bootstrap 3.
The code that represents a specific website, is split up into three extensions. The project_base contains code that is shared across all installations. It provides all basic TYPO3 configuration. The theme extension (project_theme) contains all code that is vital for the look and feel and functionality of the website. The theme extension uses project_base to compose that code.
The project_theme extension also contains all configuration that is needed for a specific website (like root path, website name, etc.). It may override configurations introduced in project_base.
The website-base is composed by three extensions, each of them prefixed with project-.
This extension is the implementation of the look and feel and the orchestration of the websites functionality. It includes the Aggregate provided by the project_base (which contains the whole project_base config) and builds the actual configuration on top of it. The project_theme also contains all assets that are frontend related (CSS / JS / Images).
The websites markup gets composed of a Layout, a Template and several Partials and Decorators.
All project-* extensions follow the same basic structure. There are a number of entities which are wrapped inside each other, like the layers of an onion. Going from the smallest to the largest entity, there are:
An Aggregate represents the largest entity and is basically a collection of the whole configuration of a website, reachable by one domain (and its aliases).
Adjustments to each templating-layer can be made on each technical layer of the website-base. Those technical layers split into:
- Configuration: The TypoScript Layer -> project_*/Configuration/
- Templating: The Fluid Layer -> project_*/Resources/Private/
- Frontend: The CSS / JS Layer -> project_*/Resources/Public/