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
encapsTagList
-
- Type
- list of string
List of tags which qualify as encapsulating tags. Must be lowercase.
ExampleencapsTagList = 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]
remapTag
-
- Type
- array of string
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]
addAttributes
-
- Type
- array of string
- Default
- Always override/set the value of the attributes.
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 ("").
ExampleaddAttributes.P { style = padding-bottom: 0px; margin-top: 1px; margin-bottom: 1px; align = center }
Copied!
removeWrapping
removeWrapping
-
- Type
- boolean
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
wrapNonWrappedLines
-
- Type
- wrap
Wrapping for non-encapsulated lines
ExamplewrapNonWrappedLines = <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
innerStdWrap_all
-
- Type
- stdWrap
Wraps the content inside all lines, whether they are encapsulated or not.
encapsLinesStdWrap.[tagname]
encapsLinesStdWrap
defaultAlign
defaultAlign
-
If set, this value is set as the default "align" value of the wrapping tags, both from encapsTagList and nonWrappedTag
nonWrappedTag
nonWrappedTag
-
- Type
tagname
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.