Data / getText¶
- Data type:
getText
- Description:
The getText data type is some kind of tool box allowing to retrieve values from a variety of sources, e.g. from GET/POST variables, from registers, values from the page tree, items in the page menus, records from any database table, etc.
The general syntax is as follows:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = <key> : <code>
where
<key>
indicates the source and<code>
is some form of path or pointer to the value, which depends on the key used. The various keys and their possible codes are described below.The
code
can contain pipe characters|
to separate keys in a multidimensional array. This e.g. works withTSFE
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = TSFE : fe_user|user|username
Some codes work with a different separator, which is documented right at the code. Spaces around the colon (
:
) are irrelevant. Thekey
is case-insensitive.By separating the value of getText with
//
(double slash) a number of codes can be supplied and getText will return the first one, which is not empty ("" or zero).To get the content of the field "header". If "header is empty, "title" is retrieved. If "title" is empty as well, it finally gets the field "uid":
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = field : header // field : title // field : uid
Properties¶
cObj¶
- getText Key:
cObj
- Description:
For CONTENT and RECORDS cObjects that are returned by a select query, this returns the row number (1,2,3,...) of the current cObject record.
parentRecordNumber
is the only key available.- Example:
Get the number of the current cObject record:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = cObj : parentRecordNumber
context¶
- getText Key:
context
- Description:
access values from context API (see). If a property is an array, it is converted into a comma-separated list.
Syntax:
TypoScript Syntax¶lib.foo.data = context:<aspectName>:<propertyName>
- Example:
Retrieve current workspace id:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶page.10 = TEXT page.10.data = context:workspace:id page.10.wrap = You are in workspace: |
current¶
- getText Key:
current
- Description:
current (gets the "current" value)
- Example:
Get the current value:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = current
DB¶
- getText Key:
DB
- Syntax:
DB : [table name] : [uid] : [field]
- Description:
Value from database. Any record from a table in TCA can be selected here. Records marked as deleted will not return any value.
In contrast to other keys, colons are used here to get deeper into the structure, instead of pipes.
- Example:
Get the value of the header field of record with uid 234 from table
tt_content
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = DB : tt_content:234:header
Get the value of the header field of a record, whose uid is stored in a GET parameter
myContentId
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data.dataWrap = DB : tt_content:{GP : myContentId}:header
Note
It is safe to directly use a client-/user-provided input for the id of a DB record here. The function
ContentObjectRenderer->getData
internally calls the functionPageRepository->getRawRecord
, which converts the parameter to int viaQueryBuilder->createNamedParameter
debug¶
- getText Key:
debug
- Description:
Returns HTML-formatted content of the PHP variable defined by the keyword. Available keywords are
rootLine
,fullRootLine
,data
,register
andpage
.- Example:
Outputs the current root-line visually in HTML:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = debug : rootLine
field¶
- getText Key:
field
- Syntax:
field : [field name from the current
$cObj->data
array in the cObject, multi-dimensional.]- Description:
This gives read access to the current value of an internal global variable determined by the given key.
As default the
$cObj->data
array is$GLOBALS['TSFE']->page
(record of the current page)In TMENU
$cObj->data
is set in a loop to the page-record for each menu item during its rendering process.In CONTENT / RECORDS
$cObj->data
is set to the actual recordIn GIFBUILDER
$cObj->data
is set to the data GIFBUILDER is supplied with.
- Examples:
Get content from
$cObj->data['header']
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = field : header
Get content from
$cObj->data['fieldname']['level1']['level2']
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = field : fieldname|level1|level2
file¶
- getText Key:
file
- Syntax:
file : [uid] : [property]
- Description:
Retrieves a property from a file object (FAL) by identifying it through its sys_file UID. Note that during execution of the FILES cObject, it's also possible to reference the current file with "current" as UID like
file : current : size
.The following properties are available: name, uid, originalUid, size, sha1, extension, mimetype, contents, publicUrl, modification_date, creation_date
Furthermore when manipulating references (such as images in content elements or media in pages), additional properties are available (not all are available all the time, it depends on the setup of references of the FILES cObject): title, description, link, alternative.
Additionally, any data in the "sys_file_metadata" table can be accessed too.
See the FILES cObject for usage examples.
- Example:
Get the file size of the file with the sys_file UID 17:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = file : 17 : size
flexform¶
- getText Key:
flexform
- Syntax:
flexform : [field containing flexform data].[property of this flexform]
- Description:
Access values from flexforms, e.g. inside of tt_content record. In contrast to most parts, deeper levels are accessed through dots, not pipes.
- Example:
Return the flexform value of given name:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = flexform : pi_flexform:settings.categories
fullRootLine¶
- getText Key:
fullRootLine
- Syntax:
fullRootLine : [pointer, integer], [field name], ["slide"]
- Description:
This property can be used to retrieve values from "above" the current page's root. Take the below page tree and assume that we are on the page "Here you are!". Using the levelfield property, it is possible to go up only to the page "Site root", because it is the root of a new (sub-)site. With
fullRootLine
it is possible to go all the way up to page tree root. The numbers between square brackets indicate to which page each value of pointer would point to:- Page tree root [-2] |- 1. page before [-1] |- Site root (root template here!) [0] |- Here you are! [1]
A "slide" parameter can be added just as for the levelfield property.
- Example:
Get the title of the page right before the start of the current website:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = fullRootLine : -1, title
getIndpEnv¶
- getText Key:
getIndpEnv
- Syntax:
getIndpEnv : <name>
- Description:
Returns the value of a System Environment Variable denoted by name regardless of server OS, CGI/MODULE version etc. The result is identical to the
$_SERVER
variable in most cases. This method should be used instead of getEnv to get reliable values for all situations. The internal processing is handled byTYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv()
Available names:
Name
Definition
Example or result
_ARRAY
Return an array with all available key-value pairs for debugging purposes
HTTP_ACCEPT_LANGUAGE
language(s) accepted by client
HTTP_HOST
[host][:[port]]
example.org:8080
HTTP_REFERER
[scheme]://[host][:[port]][path]
https://example.org:8080/typo3/32/temp/phpcheck/index.php/arg1/arg2/arg3/?arg1,arg2,arg3&p1=parameter1&p2[key]=value
HTTP_USER_AGENT
client user agent
PATH_INFO
[path_info]
/arg1/arg2/arg3/
QUERY_STRING
[query]
arg1,arg2,arg3&p1=parameter1&p2[key]=value
REMOTE_ADDR
client IP
REMOTE_HOST
client host
REQUEST_URI
[path]?[query]
/typo3/32/temp/phpcheck/index.php/arg1/arg2/arg3/?arg1,arg2,arg3&p1=parameter1&p2[key]=value
SCRIPT_FILENAME
absolute filename of script
SCRIPT_NAME
[path_script]
/typo3/32/temp/phpcheck/[index.php]
TYPO3_DOCUMENT_ROOT
absolute path of root of documents
TYPO3_HOST_ONLY
[host]
example.org
TYPO3_PORT
[port]
8080
TYPO3_REQUEST_DIR
[scheme]://[host][:[port]][path_dir]
TYPO3_REQUEST_HOST
[scheme]://[host][:[port]]
TYPO3_REQUEST_SCRIPT
[scheme]://[host][:[port]][path_script]
TYPO3_REQUEST_URL
[scheme]://[host][:[port]][path]?[query]
TYPO3_REV_PROXY
TRUE if this session runs over a well known proxy
TYPO3_SITE_SCRIPT
[script / Speaking URL] of the TYPO3 website
TYPO3_SITE_URL
[scheme]://[host][:[port]][path_dir] of the TYPO3 website frontend
TYPO3_SSL
TRUE if this session uses SSL/TLS (https)
- Example:
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
# get and output the client IP page = PAGE page.10 = TEXT page.10.stdWrap.data = getIndpEnv : REMOTE_ADDR page.10.stdWrap.htmlSpecialChars = 1
GP¶
- getText Key:
GP
- Syntax:
GP : [Value from GET or POST method]
- Description:
Get an variable from
$_GET
or$_POST
where a variable, which exists in both arrays, is returned from$_POST
.- Examples:
Get input value from query string &stuff=...
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = GP : stuff
Get input value from query string &stuff[bar]=...
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = GP : stuff|bar
level¶
- getText Key:
level
- Description:
Get the root line level of the current page.
- Example:
Get the root line level of the current page:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = level
levelfield¶
- getText Key:
levelfield
- Syntax:
levelfield : [pointer, integer], [field name], ["slide"]
- Description:
levelfield: Like leveltitle, leveluid, levelmedia et al. but where the second parameter is the root line field to fetch.
- Example:
Get the value of the user defined field user_myExtField in the root line. Requires additional configuration in
$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields']
to include field. In order that you can use this function, your fieldname 'user_myExtField' needs be included in the comma separated list of ['addRootLineFields']:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = levelfield : -1, user_myExtField, slide
leveltitle, leveluid, levelmedia¶
- getText Key:
leveltitle, leveluid or levelmedia
- Syntax:
leveltitle, leveluid, levelmedia: [levelTitle, uid or media in root line, 0- , negative = from behind, " , slide" parameter forces a walk to the bottom of the root line until there's a "true" value to return. Useful with levelmedia.]
- Description:
Returns values from up or down the page tree.
- Examples:
Get the title of the page on the first level of the root line:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = leveltitle : 1
Get the title of the page on the level right below the current page AND if that is not present, walk to the bottom of the root line until there's a title:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = leveltitle : -2, slide
Get the id of the root-page of the website (level zero):
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = leveluid : 0
LLL¶
- getText Key:
LLL
- Description:
LLL: Reference to a locallang (xlf, xml or php) label. Reference consists of [fileref]:[labelkey]
- Example:
Get localized label for logout button:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = LLL : EXT:felogin/pi1/locallang.xlf:logout
page¶
- getText Key:
page
- Description:
page: [field in the current page record]
- Example:
Get the current page title:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = page : title
pagelayout¶
- getText Key:
pagelayout
- Description:
pagelayout
- Example:
Get the current backend layout:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = pagelayout
path¶
- getText Key:
path
- Description:
Path to a file, possibly placed in an extension, returns empty if the file does not exist.
- Example:
Get path to file rsaauth.js (inside extension rsaauth) relative to siteroot:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = path : EXT:rsaauth/resources/rsaauth.js
It can also be helpful in combination with the stdWrap function
insertData
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶page.headerData.10 = TEXT page.headerData.10 { value = <link rel="preload" href="{path : EXT:site/Resources/Public/Fonts/Roboto.woff2}" as="font" type="font/woff2" crossorigin="anonymous"> insertData = 1 }
register¶
- getText Key:
register
- Syntax
register: [field name from the
$GLOBALS['TSFE']->register
]- Description:
See LOAD_REGISTER.
- Example:
Get content from
$GLOBALS['TSFE']->register['color']
:EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = register : color
session¶
- getText Key:
session
- Syntax:
session : [key]
- Description:
The
key
refers to the session key used to store the value.- Example:
Get the number of items of a stored shopping cart array/object:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = session : shop_cart|itemCount
site¶
- Data type:
site
- Description:
Accessing the current site configuration.
- Possible values:
attributes
Additional parameters configured for this site.
base
The base URL for this site.
baseVariants
The base variants for this site.
rootPageId
The root page ID of this site.
identifier
The identifier (name) of this site configuration.
websiteTitle
The website title of this site.
- Example:
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
page.10 = TEXT page.10.data = site:base page.10.wrap = This is your base URL: |
Where
site
is the keyword for accessing an aspect, and the following parts are the configuration key(s) to access.EXT:site_package/Configuration/TypoScript/setup.typoscript¶page.10 = TEXT page.10.data = site:customConfigKey.nested.value
siteLanguage¶
- Data type:
siteLanguage
- Description:
Accessing the current site language configuration.
- Possible values:
attributes
Additional parameters configured for this site language.
base
The base URL for this language.
flagIdentifier
The flag key (like
gb
orfr
) used in the TYPO3 backend.New in version 12.4: You can also use
flag
to match the corresponding site configuration setting.hreflang
Changed in version 12.4: This option is not relevant anymore for regular websites without rendering hreflang tag, but is now customizable, and has a proper fallback.
The language tag for this language defined by RFC 1766 / 3066 for
hreflang
attributeslanguageId
The language mapped to the ID of the site language.
locale
The locale, like
de_CH
oren_GB
.navigationTitle
The label to be used within language menus.
title
The label to be used within TYPO3 to identify the language.
typo3Language
The prefix for TYPO3's language files (
default
for English), otherwise one of TYPO3's internal language keys. Previously configured via TypoScriptconfig.language = fr
.websiteTitle
The website title for this language. No automatic fallback to the
site:websiteTitle
!
- Example:
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
page.10 = TEXT page.10.data = siteLanguage:navigationTitle page.10.wrap = This is the title of the current site language: | page.20 = TEXT page.20.dataWrap = The current site language's locale is {siteLanguage:locale} # Website title for the current language with fallback # to the website title of the site configuration. page.30 = TEXT page.30.data = siteLanguage:websiteTitle // site:websiteTitle
siteSettings¶
New in version 12.1.
- Data type:
siteSettings
- Description:
Access the site settings for the current site.
- Example:
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
page.10 = TEXT page.10.data = siteSettings:redirects.httpStatusCode
TSFE¶
- getText Key:
TSFE
- Syntax:
TSFE: [value from the
$GLOBALS['TSFE']
array, multi-dimensional]- Description:
Returns a value from
TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController
.- Example:
Get the "username" field of the current FE user:
EXT:site_package/Configuration/TypoScript/setup.typoscript¶lib.foo.data = TSFE : fe_user|user|username
Changed in version 13.0: The following properties within TypoScriptFrontendController (TSFE) have been removed:
spamProtectEmailAddresses
intTarget
extTarget
fileTarget
baseUrl
Migrate these properties to use the config property. You can access the
TypoScript properties directly, for example, via
lib.something.data = TSFE:config|config|fileTarget