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.

Minimum set of files for a theme
File Function of the file
ext_emconf.php Needed for every extension in TYPO3
ext_icon.gif Icon for the extensionmanager
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.

Other useful files
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

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