Data / getText
The get data type is a kind of tool box for retrieving
values from different sources, for example, GET/POST variables,
registers, values from the page tree, items in the page menus and records
from database tables.
The general syntax is as follows:
lib.foo.data = <key> : <code>
where
<key>
indicates the source and
<code>
contains paths or
pointers to values. Possible keys and codes are described below.
The
code
can contain pipe characters
|
which will
result in a multidimensional array. This, for example, works with
TSFE
:
lib.foo.data = request : frontend.user | username
Some codes use a different separator, but this is documented in the
code.
Spaces around the colon (
:
) are irrelevant. The
key
is
case-insensitive.
Using multiple codes separated by a
//
(double slash) will return
the first one that is not empty ("" or zero). The TypoScript below gets the
content of the "header" field. If "header" is empty, "title" is
retrieved. If "title" is also empty, the "uid" field is retrieved:
lib.foo.data = field : header // field : title // field : uid
Properties
applicationcontext
-
Returns the current application context as a string.
Example: Evaluate the current application context
Evaluate if the current application context is "Production":
asset
-
The getText
assetfunction includes assets like images, CSS or JavaScript that are cache-busted.Depending on $GLOBALS['TYPO3_CONF_VARS']['FE']['versionNumberInFilename'] the cache buster is applied as a query string or embedded in the filename.
The result is the same as using the argument
usein Uri.resource ViewHelper <f:uri.resource>.Cache Busting="true"
Example: Display extension icon with cache buster
cObj
-
Deprecated since version 14.3
See Deprecation: #109575 - Various ContentObjectRenderer properties/methods
Example: Get the number of the current cObject record
lib.foo.data = cObj : parentRecordNumber
context
-
Access values from context API (see). If a property is an array, it is converted into a comma-separated list.
Syntax:
TypoScript Syntaxlib.foo.data = context:<aspectName>:<propertyName>Copied!
Example: Retrieve current workspace ID
page.10 = TEXT
page.10.data = context:workspace:id
page.10.wrap = You are in workspace: |
current
-
Current (gets the "current" value)
Example: Get the current value
lib.foo.data = current
date
-
- Default
d/m Y
Can be used with a colon and date-conf.
Example: Get the current time formatted dd-mm-yy
lib.foo.data = date : d-m-y
DB
-
- Syntax
- DB : [table name] : [uid] : [field]
Value from the database. Any record from any table that is in the TCA can be selected here. Records marked as deleted will not return a value.
In contrast to the other keys, colons are used here instead of pipes to drill down into the structure.
Example: Get a header field value of a record
Get the value of the header field of record with uid 234 from table
tt_:
lib.foo.data = DB : tt_content:234:header
Get the value of the header field of a record, where the uid is in the
my GET parameter :
lib.foo.data.dataWrap = DB : tt_content:{GP : myContentId}:header
lib.foo.data.wrap3 = {|}
lib.foo.data.insertData = 1
Note
It is safe to use client-/user-provided input for the id of a DB
record here. The function
Content internally
calls the function
Page, which converts the
parameter to an int via
Query
debug
-
Returns HTML-formatted content of a PHP variable. Available variables are
root,Line full,Root Line data,registerandpage.
Example: Debug the current root-line
Outputs the current root-line visually in HTML:
lib.foo.data = debug : rootLine
field
-
- Syntax
- field : [a field name in the current
$carray in the cObject, multidimensional]Obj->data
This gives read access to the value of an internal global variable depending on the key.
- By default, the
$carray is the record of the current page.Obj->data - In TMENU
$cis set to the page-record of each menu item in loop iterations during the rendering process.Obj->data - In CONTENT / RECORDS
$cis set to the current recordObj->data - In GIFBUILDER
$cis set to the data GIFBUILDER is supplied with.Obj->data
Example: Get header data
Get content from
$c:
lib.foo.data = field : header
Example: Get data in a field
Get content from
$c:
lib.foo.data = field : fieldname | level1 | level2
file
-
- Syntax
- file : [uid] : [property]
Retrieves a property from a file object (FAL) by identifying it through its
sys_UID. Note that during execution of the FILES cObject, it is possible to reference the current file using current as the UID, for example,file file : current : size.The following properties are available: name, uid, originalUid, size, sha1, extension, mimetype, contents, publicUrl, modification_date and creation_date.
Furthermore, when manipulating references (such as images in content elements and media on pages), these 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 and alternative.
Any data in the
sys_table can also be accessed.file_ metadata See the FILES cObject for examples of usage.
Example: Get the size of a file
Get the size of the file with sys_file UID 17:
lib.foo.data = file : 17 : size
flexform
-
- Syntax
- flexform : [field containing flexform data] : [property of this flexform]
Access values in FlexForms, for example, inside a
tt_record.content
Example: Get a FlexForm value
Return the FlexForm value of given name:
lib.foo.data = flexform : pi_flexform:settings.categories
fullRootLine
-
- Syntax
- fullRootLine : [pointer, integer], [field name], ["slide"]
Gets the value of a field of a page in the root line. The pointer is an
absolute level, counted from the root page of the site downwards:
0
addresses the root page itself,
1
the page below
it and so on. The numbers in square brackets indicate which page each value of
pointer would point to:
- Site root (root template here!) [0]
|- Products [1]
|- You are here! [2]
A "slide" parameter can be added (like in levelfield property).
Note
In contrast to levelfield, a negative pointer does not count levels up from the current page. It addresses pages above the root page of the site, and TYPO3 does not deliver content from outside the current site, so the result is empty. Use levelfield to count levels up from the current page.
Example: Get a field from a page in the root line
Get the value of the field
tx_ from the root page of
the site:
lib.foo.data = fullRootLine : 0, tx_myextension_myfield
Get the title of the page on the first level below the root page of the site:
lib.foo.data = fullRootLine : 1, title
getenv
-
Value from PHP environment variables.
For a cached version of this feature, see getEnv.
Example: Get the HTTP referer
Get the environment variable HTTP_.
lib.foo.data = getenv : HTTP_REFERER
getIndpEnv
-
- Syntax
- getIndpEnv : <name>
Returns the value of a System Environment Variable denoted by name regardless of server OS, CGI/MODULE version, etc. The result is usually identical to the
$_variable. This method is more reliable then getEnv.SERVER 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] 8080TYPO3_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: Get the remote address
global
-
- Syntax
- global : [variable]
GP
-
- Syntax
- GP : [Value from GET or POST method]
Get a variable from
$_orGET $_when a variable, which exists in both arrays, is returned fromPOST $_.POST
Example: Get the input value from query string
Get input value from query string &stuff=...
lib.foo.data = GP : stuff
Get input value from query string &stuff
lib.foo.data = GP : stuff | bar
level
-
Get the root line level of the current page.
Example: Get the root line level of the current page
lib.foo.data = level
levelfield
-
- Syntax
- levelfield : [pointer, integer], [field name], ["slide"]
Like leveltitle but you can choose which field should be fetched from the record.
Example: Get a field from a page up the root-line
Get the value of user-defined field tx_ in the root line.
lib.foo.data = levelfield : -1, tx_myextension_myfield, slide
levelmedia
-
- Syntax
- levelmedia : [pointer, integer], ["slide"]
Get the media field of a page in the root-line.
- Use an absolute level: 0 or a positive integer.
- Negative integers determine x levels up.
- The slide parameter slides until there is a non-empty value.
leveltitle
-
- Syntax
- leveltitle : [pointer, integer], ["slide"]
Get the title of a page in the root-line.
- Use an absolute level: 0 or a positive integer.
- Negative integers determine x levels up
- The slide parameter slides until there is a non-empty value.
Example: Get the title of a page up the root line
Get the title of the page on the first level of the root line:
lib.foo.data = leveltitle : 1
Get the title of the page on the level immediately below the current. If it is empty, walk to the bottom of the root line until there is a title:
lib.foo.data = leveltitle : -2, slide
leveluid
-
- Syntax
- leveluid : [pointer, integer]
Get the UID of a page in the root line.
- Use an absolute level: 0 or a positive integer.
- Negative integers determine x levels up.
Example: Get the ID of the root page of the page tree
Get the ID of the root page of the website (level zero):
lib.foo.data = leveluid : 0
LLL
-
- Syntax
- LLL: [fileref]:[labelkey]
Reference to a locallang label (XLIFF). Reference consists of [fileref]:[labelkey]
Example: Get a localized label
Get the localized label for the logout button:
lib.foo.data = LLL : EXT:felogin/Resources/Private/Language/locallang.xlf:logout
page
-
- Syntax
- page: [field in the current page record]
Get the specified field from the current page
Example: Get the current page title
lib.foo.data = page : title
pagelayout
-
Get the current backend layout.
Example: Get the current backend layout
lib.foo.data = pagelayout
parameters
-
- Syntax
- parameters: [field name from the current
$carray in the cObject.]Obj->parameters
Get the content of a key in the
parametersarray of the current cObject.
Example: Get the parameter color
Get content from
$c:
lib.foo.data = parameters : color
path
-
Changed in version 14.0
pathreturns an absolute URL.Path to a file, for example, that is in an extension. Returns an empty value if the file does not exist.
EXT:my_extension/Configuration/Sets/Main/setup.typoscript
Example: Resolve the path to a file
Get path to file rsaauth. (inside extension rsaauth) relative to siteroot:
lib.foo.data = path : EXT:rsaauth/resources/rsaauth.js
It can also be helpful in combination with the stdWrap function :
register
-
- Syntax
- register: [field name from the register stack]
See LOAD_REGISTER.
Example: Get the content of a register
Get content from a register:
lib.foo.data = register : color
request
-
- Syntax
- request : [attribute] | [property] ( | [subproperty] | ... )
Retrieve the property of a PSR-7 request attribute.
Only scalar properties can be retrieved: int, float, string or bool values. If the property is an object or an array, a subproperty can be used to call the getter method of the object or retrieve the key of the array.
Example: Get the page type
lib.foo.data = request : routing | pageType
Example: Get a query argument
Example: Get the nonce
lib.foo.data = request : nonce | value
session
-
- Syntax
- session : [key]
The
keyis the session key used to store a value.
Example: Get a value stored in the current session
Get the number of items of a stored shopping cart array/object:
lib.foo.data = session : shop_cart | itemCount
site
-
- Syntax
- site : [key]
Accesses the current site configuration.
Possible keys:attributes- Additional parameters configured for this site.
base- The base URL for this site.
baseVariants - The base variants of this site.
rootPage Id - The root page ID of this site.
identifier- The identifier (name) of this site configuration.
websiteTitle - The website title of this site.
Example: Get values from the current site
page.10 = TEXT
page.10.data = site:base
page.10.wrap = This is your base URL: |
site
is the keyword, and the parts after the colon are the
configuration key(s) to access.
page.10 = TEXT
page.10.data = site:customConfigKey.nested.value
siteLanguage
-
- Syntax
- siteLanguage : [key]
Accesses the current site language configuration.
Possible keys:attributes- Additional parameters configured for this site language.
base- The base URL for this language.
flagIdentifier -
The flag key (for example,
gborfr) used in the TYPO3 backend.flagcan be used to match the site configuration setting. hreflang-
The language tag for this language defined by RFC 1766 / 3066
hreflangattributes.This option is not relevant for regular websites without rendering hreflang tag.
languageId - The language mapped to the ID of the site language.
localeChanged in version 12.3
The
localeproperty in typoscript can be subdivided using subkeys separated by a colon:. The subkeyslanguage,Code country, andCode fullallow access to the individual components of thelocalevalue. For instance, alocalevalue of "en_US.UTF-8" can be broken down into "en", "US", and for thefullsubkey, "en-US".language: this contains the two-letter language code (previouslyCode site)Language: two Letter Iso Code country: contains the uppercase country code part of the localeCode full: contains the entire locale (this is also the default if no subkey is specified)
The
localeproperty represents the language, country, and character encoding settings for TYPO3. It is a composite value, such as "en_US.UTF-8", which can be dissected into different components via subkeys for more precise language and location specifications.navigationTitle - The label used in language menus.
title- The label used in TYPO3 to identify the language.
typo3Language- The prefix for TYPO3's language files (
defaultfor English), otherwise one of TYPO3's internal language keys. Previously configured via TypoScriptconfig..language = fr websiteTitle - The website title for this language. Note: there is no automatic fallback to the
site:.website Title
Example: Get values from the current site language
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
-
Access the site settings of the current site.
Example: Access the redirects HTTP status code
page.10 = TEXT
page.10.data = siteSettings:redirects.httpStatusCode