[TYPO3-german] Fluid raw vs. html
Dr. Dieter Porth
typo3 at mobger.de
Thu Dec 1 19:01:27 CET 2016
Hallo Christoph,
deine Vermutung ist falsch.
f:format.html ohne Parameter ist von der Benennung her schlecht gewählt;
Wenn man in den Code schaut, sieht man, dass per Default der Viewhelper
'nur' das TypoScript ' lib.parseFunc_RTE' auf den Inhalt anwendet.
Durch den doppelten Aufruf wird dein HTML nur zweimal geparst, was für
die Laufzeit schlecht ist.
Mit besten Grüßen
Dieter
TypoScript
Zusatzinfo:
http://www.typo3lexikon.de/typo3-tutorials/typoscript/referenz/parsefunc.html
# Creates persistent ParseFunc setupfor non-HTML content.
lib.parseFunc {
makelinks =1 makelinks {
http {
keep = {$styles.content.links.keep}
extTarget = {$styles.content.links.extTarget}
}
mailto {
keep = path
}
}
tags {
link = TEXT
link {
current =1 typolink {
parameter.data = parameters : allParams
extTarget = {$styles.content.links.extTarget}
target = {$styles.content.links.target}
}
parseFunc.constants =1 }
}
allowTags = {$styles.content.allowTags}
denyTags = *
sword = <spanclass="ce-sword">|</span>
constants =1 nonTypoTagStdWrap {
HTMLparser =1 HTMLparser {
keepNonMatchedTags =1 htmlSpecialChars =2 }
}
}
# Creates persistent ParseFunc setupfor RTE content (which is mainly HTML) based on the"ts_css" transformation.
lib.parseFunc_RTE < lib.parseFunc
lib.parseFunc_RTE {
# Processing <table> and <blockquote> blocks separately
externalBlocks = article, aside, blockquote, div, dd, dl, footer, header, nav, ol, section, table, ul
externalBlocks {
# The blockquote content is passed into parseFunc again...
blockquote {
stripNL =1 callRecursive =1 callRecursive {
tagStdWrap {
HTMLparser =1 HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;" }
}
}
ol {
stripNL =1 stdWrap.parseFunc = < lib.parseFunc
}
ul {
stripNL =1 stdWrap.parseFunc = < lib.parseFunc
}
table {
stripNL =1 stdWrap {
HTMLparser =1 HTMLparser {
tags.table.fixAttrib.class {
default = contenttable
always =1 list = contenttable
}
keepNonMatchedTags =1 }
}
HTMLtableCells =1 HTMLtableCells {
# Recursive call toself but without wrapping non-wrapped cell content
default.stdWrap {
parseFunc = < lib.parseFunc_RTE
parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag =
}
addChr10BetweenParagraphs =1 }
}
div {
stripNL =1 callRecursive =1 }
article < .div
aside < .div
footer < .div
header < .div
nav < .div
section < .div
dl < .div
dd < .div
}
nonTypoTagStdWrap {
encapsLines {
encapsTagList = p,pre,h1,h2,h3,h4,h5,h6,hr,dt
remapTag.DIV = P
nonWrappedTag = P
innerStdWrap_all.ifBlank =
}
}
nonTypoTagStdWrap {
HTMLparser =1 HTMLparser {
keepNonMatchedTags =1 htmlSpecialChars =2 }
}
}
Am 01.12.2016 um 08:34 schrieb Christoph:
> Hallo Dieter,
>
> danke für die Info!
>
> Was mir noch eingefallen ist: Die Templatefiles von fluid styled content
> geben den Bodytext bereits mit <f:format.html>....</f:format.html> aus.
> Ich vermute, dass die erneute Ausgabe mit
> <f:format.html>{content}</f:format.html> in meine "Designtemplate" dann
> die Probleme verursacht.
>
> VG
> Christoph
>
>
> Am 01.12.2016 um 07:17 schrieb Dr. Dieter Porth:
>> Hallo Christoph,
>>
>> Die P's kommen sicher vom RTE.
>>
>> Entwder die p's zu entfernen bzw. nicht erzeugen lassen. Ich habe
>> die Konfigurationen nicht alle vor augen und müsste sie auch googlen.
>> Vielleicht hat einer der Mitleser aktuell einen Konfigurationshinweis
>> zur Hand.
>>
>> Wenn die p--Tags das Layout zerschießen, dann ist aber vielleicht auch
>> dein Layout subopmtial. Vielleicht solltest du es überarbeiten, da es
>> ja schon sein kann, dass später zum Beispiel Blockstyles im TRE
>> verwenden möchte. Es wäre also besser, das Layout schon jetzt an die
>> Eigenheiten von TYPO3 anzupassen.
>>
>> Mit besten Grüßen
>>
>> Dieter
>>
>>
>> Am 30.11.2016 um 22:29 schrieb Christoph:
>>> Hallo Zusammen!
>>>
>>> Frage zu Fluidtemplates: wenn ich den Inhalt einer Seite (z.B. alles von
>>> Spalte "normal") ausgeben will und das ganze via
>>>
>>> <f:format.html>{content}</f:format.html>
>>>
>>> einfüge, zerschießt es mir das Layout, da um jedes Element größeren
>>> Mengen <p>´s platziert werden (die im Backend nicht sichtbar sind). Mit
>>> "raw" kommt ein vernünftiger Output heraus
>>>
>>> <f:format.raw value="{content}" />
>>>
>>>
>>> Ist "raw" in dem Fall die richtige Wahl? Gibt es einen besseren Weg?
>>>
>>> Danke!
>>> VG
>>> Chirs
>>>
>>> _______________________________________________
>>> TYPO3-german mailing list
>>> TYPO3-german at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list