TYPO3 v8 has reached its end-of-life March 31st, 2020 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.

You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.


This provides a way to load the array $GLOBALS['TSFE']->register[] with values. It does not return anything!

The register is working like a stack: With each call new content can be put on top of the stack. RESTORE_REGISTER can be used to remove the element at the topmost position again.

Registers are used at many different places, e.g. css_styled_content uses registers to enumerate the classes of the headlines. The usefulness of registers is that some predefined configurations (like the page-content) can be used in various places but use different values as the values of the register can change during page rendering.


(array of field names)

Data type

string /stdWrap



This sets "contentWidth", "label" and "head".

page.27 {
  contentWidth = 500

  label.field = header

  head = some text
  head.wrap = <b> | </b>



1.param.cObject = TEXT = GP:the_id
# To avoid SQL injections we use intval - so the parameter
# will always be an integer.
1.param.cObject.stdWrap.intval = 1

10.table = tx_my_table {
  pidInList = this
  orderBy = sorting
  # Now we use the registered parameter
  where = uid = {REGISTER:param}
  where.insertData = 1
10.renderObj = COA
10.renderObj {
  10 = TEXT
  10.stdWrap.field = the_id

In this example we first load a special value, which is given as a GET/POST parameter, into the register. Then we use a CONTENT object to render content based on this value. This CONTENT object loads data from a table and looks up a special entry using the value from the register.

For an example in combination with RESTORE_REGISTER see the example on the page RESTORE_REGISTER.