TYPO3 v9 has reached its end-of-life September 30th, 2021 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. The registers are processed in the reverse order. The register with the highest number will be processed as the first, and the register with the lowest number will be processed as the last one. This corresponds to the stack priciple Last In – First Out (LIFO).

With the advent of Fluid templating registers are used less often then they used to. In the core they are not being used anymore.


(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 = tx_my_text_field

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 "tx_my_table" and looks up the entry using the value from the register as a unique id. The field "tx_my_text_field" of this record will be rendered as output.

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