Files
cms-frontend/ext_localconf.php
T

144 lines
3.7 KiB
PHP

<?php
declare(strict_types=1);
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
use TYPO3\CMS\Frontend\Controller\ShowImageController;
defined('TYPO3') or die();
// Register eID provider for showpic
$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['tx_cms_showpic'] = ShowImageController::class . '::processRequest';
ExtensionManagementUtility::addTypoScriptSetup(
'
# Creates persistent ParseFunc setup for non-HTML content.
lib.parseFunc {
makelinks = 1
makelinks {
http {
keep = path
extTarget = _blank
}
mailto {
keep = path
}
}
tags {
a = TEXT
a {
current = 1
typolink {
parameter.data = parameters:href
title.data = parameters:title
target.data = parameters:target
ATagParams.data = parameters:allParams
}
}
}
nonTypoTagStdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
htmlSpecialChars = 2
}
}
}
# Creates persistent ParseFunc setup for RTE content (which is mainly HTML) based on the "default" transformation.
lib.parseFunc_RTE < lib.parseFunc
lib.parseFunc_RTE {
# Processing <ol>, <ul> and <table> blocks separately
externalBlocks = article, aside, blockquote, div, dd, dl, footer, header, nav, ol, section, table, ul, pre, figure, figcaption
externalBlocks {
ol {
stripNL = 1
stdWrap.parseFunc = < lib.parseFunc
}
ul {
stripNL = 1
stdWrap.parseFunc = < lib.parseFunc
}
pre {
stdWrap.parseFunc < lib.parseFunc
}
table {
stripNL = 1
stdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
}
}
HTMLtableCells = 1
HTMLtableCells {
# Recursive call to self but without wrapping non-wrapped cell content
default.stdWrap {
parseFunc = < lib.parseFunc_RTE
parseFunc.nonTypoTagStdWrap.encapsLines {
nonWrappedTag =
innerStdWrap_all.ifBlank =
}
}
}
}
# ideally, "div" is not calling itself recursive, but instead uses a similar approach as ol/ul/pre
# so it is a container with content, which does not need to be wrapping <p> tags in it.
div {
stripNL = 1
callRecursive = 1
}
article < .div
aside < .div
figure < .div
figcaption {
stripNL = 1
}
blockquote < .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
nonWrappedTag = P
innerStdWrap_all.ifBlank = &nbsp;
}
}
}
# Content selection
styles.content.get = CONTENT
styles.content.get {
table = tt_content
select {
orderBy = sorting
where = {#colPos}=0
}
}
# Content element rendering
tt_content = CASE
tt_content {
key {
field = CType
}
default = TEXT
default {
field = CType
htmlSpecialChars = 1
wrap = <p style="background-color: yellow; padding: 0.5em 1em;"><strong>ERROR:</strong> Content Element with uid "{field:uid}" and type "|" has no rendering definition!</p>
wrap.insertData = 1
}
}
'
);
// Register search key shortcuts
$GLOBALS['TYPO3_CONF_VARS']['SYS']['livesearch']['content'] = 'tt_content';