144 lines
3.7 KiB
PHP
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 =
|
|
}
|
|
}
|
|
}
|
|
|
|
# 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';
|