Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.
encapsLines
This function is a sub-function of stdWrap and can be used like this:
page.20 = TEXT
page.20 {
value (
First line of text
Some <div>text</div>
<p>Some text</p>
<div>Some text</div>
<B>Some text</B>
)
stdWrap.encapsLines {
encapsTagList = div, p
remapTag.P=DIV
}
}
Properties
encapsTagList
- Property
- encapsTagList
- Data type
- list of strings
- Description
- List of tags which qualify as encapsulating tags. Must be lowercase.
- Example
-
encapsTagList = div, p
Copied!This setting will recognize the highlighted lines below as encapsulated lines:
First line of text Some <div>text</div> <p>Some text</p> <div>Some text</div> <B>Some text</B>
Copied!
remapTag.[tagname]
- Property
- remapTag.[tagname]
- Data type
- string
- Description
-
Enter a new tag name here if you wish the tag name of any encapsulation to be unified to a single tag name.
For instance, setting this value to
remap
would convert:Tag. P=DIV <p>Some text</p> <div>Some text</div>
Copied!to :
<div>Some text</div> <div>Some text</div>
Copied!([tagname] is in uppercase.)
addAttributes.[tagname]
- Property
- addAttributes.[tagname]
- Data type
- (array of strings)
- Description
-
Attributes to set in the encapsulation tag.
([tagname] is in uppercase.)
addAttributes.P.setOnly = exists
Copied!- exists
- This will set the value ONLY if the property does not already exist.
- blank
- This will set the value ONLY if the property does not already exist OR is blank ("").
- Default
- Always override/set the value of the attributes.
- Example
-
addAttributes.P { style = padding-bottom: 0px; margin-top: 1px; margin-bottom: 1px; align = center }
Copied!
removeWrapping
- Property
- removeWrapping
- Data type
- boolean
- Description
-
If set, then all existing wrapping will be removed.
This:
First line of text Some <div>text</div> <p>Some text</p> <div>Some text</div> <b>Some text</b>
Copied!becomes this:
First line of text Some <div>text</div> Some text Some text <b>Some text</b>
Copied!
wrapNonWrappedLines
- Property
- wrapNonWrappedLines
- Data type
- wrap
- Description
- Wrapping for non-encapsulated lines
- Example
-
wrapNonWrappedLines = <p>|</p>
Copied!This:
First line of text <p>Some text</p>
Copied!becomes this:
<P>First line of text</P> <p>Some text</p>
Copied!
innerStdWrap_all
- Property
- innerStdWrap_all
- Data type
- stdWrap
- Description
- Wraps the content inside all lines, whether they are encapsulated or not.
encapsLinesStdWrap.[tagname]
- Property
- encapsLinesStdWrap.[tagname]
- Data type
- stdWrap
- Description
-
Wraps the content inside all encapsulated lines.
([tagname] is in uppercase.)
defaultAlign
- Property
- defaultAlign
- Data type
- string / stdWrap
- Description
- If set, this value is set as the default "align" value of the wrapping
tags, both from encapsTagList,
bypass
and nonWrappedTagEncaps Tag List
nonWrappedTag
- Property
- nonWrappedTag
- Data type
tagname
- Description
- For all non-wrapped lines, you can here set a tag in which they
should be wrapped. Example would be "p". This is an alternative to
wrap
and has the advantage that its attributes are set byNon Wrapped Lines add
as well asAttributes default
. Thus you can match the wrapping tags used for non-wrapped and wrapped lines more easily.Align
Examples
<p>
tag is used to encapsulate each line
encapsLines {
encapsTagList = div,p
remapTag.DIV = P
wrapNonWrappedLines = <p>|</p>
innerStdWrap_all.ifEmpty =
}
This example shows how to handle content rendered by TYPO3 and
stylesheets where the <p>
tag is used to encapsulate each line.
Say, you have made this content with the rich text editor:
This is line # 1
[Above is an empty line!]
<div style="text-align: right;">This line is right-aligned.</div>
After being processed by encapsLines with the above configuration, the content looks like this:
<p>This is line # 1 </p>
<p> </p>
<p>[Above is an empty line!] </p>
<p style="text-align: right;">This line is right-aligned.</p>
Each line is nicely wrapped with <p>
tags. The line from the database
which was already wrapped (but in <div>
tags) has been converted to
<p>
, but keeps its alignment. Overall, notice that the rich text editor
ONLY stored the line which was in fact right-aligned - every other line from the
RTE was stored without any wrapping tags, so that the content in the database
remains as human readable as possible.
Advanced example
# Make sure nonTypoTagStdWrap operates
# on content outside <typolist> and <typohead> only:
tt_content.text.20.parseFunc.tags.typolist.breakoutTypoTagContent = 1
tt_content.text.20.parseFunc.tags.typohead.breakoutTypoTagContent = 1
# ... and no <br> before typohead.
tt_content.text.20.parseFunc.tags.typohead.stdWrap.wrap >
# Setting up nonTypoTagStdWrap to wrap the text with p tags
tt_content.text.20.parseFunc.nonTypoTagStdWrap >
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines {
encapsTagList = div,p
remapTag.DIV = P
wrapNonWrappedLines = <p style="margin: 0 0 0;">|</p>
# Forcing these attributes onto the encapsulation tags if any
addAttributes.P {
style=margin: 0 0 0;
}
innerStdWrap_all.ifEmpty =
}
# Finally removing the <br> tag after the content...
tt_content.text.20.wrap >
This is an example of how to wrap the table field tt_
with <p>
tags, setting the line distances to regular space like that
generated by a <br>
tag, but staying compatible with the RTE features
such as assigning classes and alignment to paragraphs.