DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
Make your own theme¶
Templating strategy¶
To make your own theme you have to choose a templating engine. You can choose at least between:
- pure TYPOScript
- fluidcontent and fluidpages
- gridelements
- automaketemplate (not test, but should work)
- any other templating engine which is controllable with TYPOScript (even with userfunctions)
Structure of a theme¶
Extensions containing Themes¶
A theme is basicly a set of TYPOScript files stored in an extension with some additional meta data.
File | Function of the file |
---|---|
ext_emconf.php | Needed for every extension in TYPO3 |
ext_icon.gif | Icon for the extensionmanager |
Meta/theme.yaml | contains some meta data |
Configuration/Theme/constants.txt | contains constants to easily configure a theme |
Configuration/Theme/setup.txt | contains the needed TYPOScript to render the frontend |
Configuration/Theme/tsconfig.txt | contains the PageTS to configure the pagebranch of a selected theme |
Additionally there are some files, which are useful to achieve some higher goals.
File | Function of the file |
---|---|
Resources/Private/* | contains resources, which are not served to the user |
Resources/Public/* | contains resources, which are normally served to the user |
Documentation/* | contains theme documentation |
Configuration/t3jquery.txt | contains the t3jquery configuration |
ext_tables.php | usually contains backwards compat stuff to use a theme standalone |
Configuration/TypoScript | used for compatibility with ext_tables.php |
Themes - the alternative way of shipping¶
Kickstarting a theme¶
You may use ext:themes_builder to generate the structure with just a bunch of clicks.
@todo insert more information about the themes_builder here.
Minimal TYPOScript of a theme¶
If you want to make a theme with as less TYPOScript as possible, you may use fluidcontent and fluidpages to make the progress easier. Using this libraries you just need to configure where to find the definitions of pagelayout and elements.
This way you can built layouts with nearly no TYPOScript.
Additionally you may use EXT:themes_fces_fluidcontent_basic to use a big and growing library of usefull content elements, which can be easily adjusted.
Suggested Extensions and libraries¶
extension key | use case |
---|---|
basictemplate | an ultra lightweight theme, which is based on pure TYPOScript |
themes_builder | helper to kickstart a new theme |
themes_fces_fluidcontent_basic | provides some additional and usefall standard fces and pagestructures |
themes adapter_templavoilaframework | provides an adapter to use tv framework skins with themes |
themes_adapter_wordpress | provides an adapter to use wordpress themes with EXT:themes |
themes_settings | provides an easy to use interface to adjust a theme |
theme_bootstrap | an example theme |
theme_bootstrap_flatly | an example theme, which depends on EXT:theme_bootstrap |