CONTENT
An object with the content type CONTENT is designed to generate content by allowing to finely select records and have them rendered.
What records are visible is controlled by start
and end
fields and
more standard fields automatically. The internal value SYS_
is raised to the maximum timestamp value of the respective records.
See also
The cObject RECORDS in contrast is for displaying lists of records from a variety of tables without fine graining.
Table of content
Properties
select
-
- Type
- select
The SQL-statement, a
SELECT
query, is set here, including automatic visibility control.
table
-
- Type
- table name / stdWrap
The table, the content should come from. Any table can be used; a check for a table prefix is not done.
In standard configuration this will be
tt_
.content
renderObj
-
- Type
- Content Objects (cObject)
- Default
<
[table name]
The cObject used for rendering the records resulting from the query in Properties.
If
render
is not set explicitly, thenObj <
is used. So in this case the configuration of the according Properties is being copied.[table name] See the notes on the example below.
slide
slide.collect
slide.collectFuzzy
-
Only useful with slide.collect. If no content elements have been found for the specified depth in collect mode, traverse further until at least one match has occurred.
slide.collectReverse
wrap
stdWrap
-
- Type
- stdWrap
Apply
std
functionality.Wrap
cache
-
- Type
- cache
See cache function description for details.
Examples
CONTENT explained in detail
See PHP class \TYPO3\
for details on code level.
1 = CONTENT
1 {
if {
}
table = tt_content
select {
pidInList = this
where = colPos = 1
orderBy = sorting
}
renderObj = < tt_content
slide = 0
slide {
collect = 0
collectReverse = 0
collectFuzzy = 0
}
wrap =
stdWrap =
}
Expanded form:
1 = CONTENT
// STEP 1: do nothing if 'if' evaluates to false
1.if {
# ifclause =
}
// STEP 2: define parameters
1.table = tt_content # default='' #stdWrap
1.select {
pidInList = this
where = colPos = 1
orderBy = sorting
}
# renderObj = <TABLEVALUE # default!
1.renderObj =
# slide = 0 # default! #stdWrap
1.slide = -1
# slideCollect = 0 # default! #stdWrap
1.slide.collect =
# slideCollectReverse = false # default! #stdWrap
1.slide.collectReverse =
# slideCollectFuzzy = false # default! #stdWrap
1.slide.collectFuzzy =
// STEP 3: find all records
// STEP 4: apply the renderObj to each record and collect
// the results as string 'totalResult'
// STEP 5: Apply wrap to the 'totalResult'
1.wrap = | # default!
// STEP 6: Apply stdWrap to the 'totalResult'
1.stdWrap = # default! #stdWrap
// STEP 6: Return 'totalResult'
See also: if, select, Wrap, stdWrap, Content Objects (cObject)
Display all tt_content records from this page
Here is an example of the CONTENT object:
1 = CONTENT
1.table = tt_content
1.select {
pidInList = this
orderBy = sorting
where = {#colPos}=0
}
Since in the above example .render
is not set explicitly, TYPO3
will automatically set 1.
, so that render
will reference the TypoScript configuration of tt_
. The
according TypoScript configuration will be copied to render
.
Apply special rendering
Here is an example of record-rendering objects:
page = PAGE
page.typeNum = 0
# The CONTENT object executes a database query and loads the content.
page.10 = CONTENT
page.10.table = tt_content
page.10.select {
# "sorting" is a column from the tt_content table and
# keeps track of the sorting order, which was specified in
# the backend.
orderBy = sorting
# Only select content from column "0" (the column called
# "normal") and quote the database identifier (column name)
# "colPos" (indicated by wrapping with {#})
where = {#colPos}=0
}
# For every result line from the database query (that means for every content
# element) the renderObj is executed and the internal data array is filled
# with the content. This ensures that we can call the .field property and we
# get the according value.
page.10.renderObj = COA
page.10.renderObj {
10 = TEXT
# The field tt_content.header normally holds the headline.
10.stdWrap.field = header
10.stdWrap.wrap = <h1>|</h1>
20 = TEXT
# The field tt_content.bodytext holds the content text.
20.stdWrap.field = bodytext
20.stdWrap.wrap = <p>|</p>
}