Theming is simple with Teapotio.
You can take an existing theme and override any part of it. For that very reason, this doc will first explain where the default theme is located.
Located in Teapotio/SiteBundle/Resources/themes, the output is composed of multiple themes:
The easiest way to create your own theme is take another theme and override it to fit your needs.
Copy the following code in your config.yml file:
- # Add the path to your bundle's theme
- # Add the name of your theme here
For example, if your theme name is mytheme-acme and your bundle name is AcmeBundle.
The directory will be
@AcmeBundle/Resources/themes and the theme name will be
From now on, you can override any templates by simply creating a new one using the same path as the original.
The original template's path:
To build your assets run the command
console assetic:dump or
console assetic:watch while you are developing.
The command will concatenate all your assets located in your theme into a single CSS or JS file.
This CSS or JS file will be named after your theme, for instance, if your theme is named
your assets will be concatenated into
To avoid class naming collisions, it's important that you follow a certain naming convention for your themes.
The default theme is using SuitCSS for its naming convention but you can use any other out there.
Each page is dynamically loaded while navigating through the forum.
extends features of Twig templating engine
we can easily create such system.
The page structure is as follow:
When a user first visits a page, it will render
action (left column).
This template extends
html (head and body HTML tags) and
includes its corresponding partial template
The partial template
action is the content of the page.
When a user navigates to another page it will dynamically load and render this partial template instead
of the page template
The partial template
action extends the base partial template
Partials include the content specific to the requested page. For instance, a header would not be part of a partial but a pagination would.
Templates  and  are particularly useful to define common features between a set of partials.