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
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
encapsTagList = div, p
This setting will recognize the highlighted lines below as encapsulated lines:
Example Output¶First line of text Some <div>text</div> <p>Some text</p> <div>Some text</div> <B>Some text</B>
remapTag.[tagname]¶
- Property
remapTag.[tagname]
- Data type
- 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
remapTag.P=DIV
would convert:<p>Some text</p> <div>Some text</div>
to :
<div>Some text</div> <div>Some text</div>
([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.)
EXT:site_package/Configuration/TypoScript/setup.typoscript¶addAttributes.P.setOnly = exists
- 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
- EXT:site_package/Configuration/TypoScript/setup.typoscript¶
addAttributes.P { style = padding-bottom: 0px; margin-top: 1px; margin-bottom: 1px; align = center }
removeWrapping¶
- Property
removeWrapping
- Data type
- 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>
becomes this:
First line of text Some <div>text</div> Some text Some text <b>Some text</b>
innerStdWrap_all¶
- Property
innerStdWrap_all
- Data type
- Description
Wraps the content inside all lines, whether they are encapsulated or not.
encapsLinesStdWrap.[tagname]¶
- Property
encapsLinesStdWrap.[tagname]
- Data type
- Description
Wraps the content inside all encapsulated lines.
([tagname] is in uppercase.)
defaultAlign¶
- Property
defaultAlign
- Data type
- Description
If set, this value is set as the default "align" value of the wrapping tags, both from encapsTagList,
bypassEncapsTagList
and nonWrappedTag
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
wrapNonWrappedLines
and has the advantage that its attributes are set byaddAttributes
as well asdefaultAlign
. Thus you can match the wrapping tags used for non-wrapped and wrapped lines more easily.
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_content.bodytext
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.