chore: copy ep_products and ep_theme from EP/website@9593cc8

Copied unchanged from public/typo3conf/ext/ of EP/website at
9593cc8631354f8a363d6609de8b7433f669a9a0 (Git-tracked files only).
History stays in the old repository. Only composer.json files are
added so the extensions install as path packages.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-21 14:01:20 +02:00
1 parent 59afaecea1
commit a46918de9d
778 files changed
+67000 -2

No files matched your search

@@ -0,0 +1,13 @@
lib.breadcrumb = HMENU
lib.breadcrumb {
special = rootline
special.range = 0|-1
1 = TMENU
1.wrap = <div class="hidden md:flex container mb-8 text-sm">|</div>
1.NO {
stdWrap.htmlSpecialChars = 1
ATagTitle.field = nav_title // title
linkWrap = |<span class="px-1">/</span>|*||*| |
doNotLinkIt = |*| 0 |*| 1
}
}
@@ -0,0 +1,49 @@
lib.dynamicContent = COA
lib.dynamicContent {
5 = LOAD_REGISTER
5 {
colPos.cObject = TEXT
colPos.cObject {
field = colPos
ifEmpty.cObject = TEXT
ifEmpty.cObject {
value.current = 1
ifEmpty = 0
}
}
pageUid.cObject = TEXT
pageUid.cObject {
field = pageUid
ifEmpty.data = TSFE:id
}
contentFromPid.cObject = TEXT
contentFromPid.cObject {
data = DB:pages:{register:pageUid}:content_from_pid
data.insertData = 1
}
wrap.cObject = TEXT
wrap.cObject {
field = wrap
}
}
20 = CONTENT
20 {
table = tt_content
select {
includeRecordsWithoutDefaultTranslation = 1
orderBy = sorting
where = colPos={register:colPos}
where.insertData = 1
pidInList.data = register:pageUid
pidInList.override.data = register:contentFromPid
}
stdWrap {
dataWrap = {register:wrap}
required = 1
}
}
90 = RESTORE_REGISTER
}
lib.dynamicContentSlide =< lib.dynamicContent
lib.dynamicContentSlide.20.slide = -1
@@ -0,0 +1,124 @@
lib.parseFunc {
makelinks = 1
makelinks {
http {
keep = path
extTarget = _blank
}
mailto {
keep = path
}
}
tags {
link = TEXT
link {
current = 1
typolink {
parameter {
data = parameters : allParams
}
extTarget = _blank
}
parseFunc.constants = 1
}
a = TEXT
a {
current = 1
typolink {
parameter.data = parameters:href
title.data = parameters:title
ATagParams.data = parameters:allParams
target.data = parameters:target
extTarget = _blank
extTarget.override.data = parameters:target
}
}
}
allowTags := addToList(a, abbr, acronym, address, article, aside, b, bdo)
allowTags := addToList(big, blockquote, br, caption, center, cite, code, col)
allowTags := addToList(colgroup, dd, del, dfn, dl, div, dt, em, font)
allowTags := addToList(footer, header, h1, h2, h3, h4, h5, h6, hr, i, img)
allowTags := addToList(ins, kbd, label, li, link, meta, nav, ol, p, pre, q)
allowTags := addToList(samp, sdfield, section, small, span, strike, strong)
allowTags := addToList(style, sub, sup, table, thead, tbody, tfoot, td, th)
allowTags := addToList(tr, title, tt, u, ul, var)
denyTags = *
sword = <span class="text-highlight">|</span>
constants = 1
nonTypoTagStdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
htmlSpecialChars = 2
}
}
}
lib.parseFunc_RTE < lib.parseFunc
lib.parseFunc_RTE {
externalBlocks := addToList(article, aside, blockquote, div, dd, dl, footer)
externalBlocks := addToList(header, nav, ol, section, table, ul, pre, svg, use)
externalBlocks {
ol {
stripNL = 1
stdWrap {
parseFunc = < lib.parseFunc
}
}
ul {
stripNL = 1
stdWrap {
parseFunc = < lib.parseFunc
}
}
table {
stripNL = 1
stdWrap {
wrap = <div class="w-full overflow-x-scroll mb-4">|</div>
}
callRecursive = 1
callRecursive.tagStdWrap.HTMLparser = 1
callRecursive.tagStdWrap.HTMLparser.tags.table {
fixAttrib.class.default = w-full
}
HTMLtableCells = 1
HTMLtableCells {
default.stdWrap {
parseFunc = < lib.parseFunc_RTE
parseFunc {
nonTypoTagStdWrap {
encapsLines {
nonWrappedTag =
}
}
}
}
}
}
pre {
stripNL = 1
}
div {
stripNL = 1
callRecursive = 1
}
blockquote < .div
article < .div
aside < .div
footer < .div
header < .div
nav < .div
section < .div
dl < .div
dd < .div
}
nonTypoTagStdWrap.encapsLines >
nonTypoTagStdWrap {
HTMLparser = 1
HTMLparser {
keepNonMatchedTags = 1
htmlSpecialChars = 2
}
}
}
@@ -0,0 +1,21 @@
lib.searchBar = USER
lib.searchBar {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = EpProducts
pluginName = searchbar
vendorName = EP
controller = Searchbar
action = index
switchableControllerActions {
Searchbar {
1 = index
}
}
settings =< plugin.tx_epproducts.settings
settings.searchPageUid < plugin.tx_epproducts.settings.defaultSearchPageUid
persistence =< plugin.tx_epproducts.persistence
view =< plugin.tx_epproducts.view
}
lib.searchBarCollapsed < lib.searchBar
lib.searchBarCollapsed.settings.collapsed = 1
@@ -0,0 +1,135 @@
lib.tue_sitemapcsv = COA_INT
lib.tue_sitemapcsv {
5 = TEXT
5 {
value (
"URL";"Latest change";"Doktype";"Title";"Nav Title";"Description"
)
}
10 = COA
10 {
10 = TEXT
10 {
typolink {
forceAbsoluteUrl = 1
parameter.field = uid
returnLast = url
}
wrap = "|";
replacement.10 {
search = "
replace = ""
}
}
20 = CONTENT
20 {
table = tt_content
select {
pidInList.field = uid
orderBy = tstamp DESC
languageField = sys_language_uid
max = 1
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = tstamp
date = c
postCObject = TEXT
postCObject {
field = tstamp
age = " Minutes| Hours| Days| Years| Minute| Hour| Day| Year"
noTrimWrap = | (vor |)|
}
if {
value.field = tstamp
isLessThan.data = DB:pages:{field:uid}:tstamp
isLessThan.data.insertData = 1
}
}
}
stdWrap {
ifEmpty.cObject < lib.tue_sitemapcsv.10.20.renderObj.10
ifEmpty.cObject.if >
replacement < lib.tue_sitemapcsv.10.10.replacement
wrap < lib.tue_sitemapcsv.10.10.wrap
}
}
30 = CASE
30 {
key.field = doktype
1 = TEXT
1.value = Standard
3 = TEXT
3.value = External URL
4 = TEXT
4.value = Shortcut
6 = TEXT
6.value = Backend User Section
stdWrap {
replacement < lib.tue_sitemapcsv.10.10.replacement
wrap < lib.tue_sitemapcsv.10.10.wrap
}
}
40 = TEXT
40 {
field = title
replacement < lib.tue_sitemapcsv.10.10.replacement
wrap < lib.tue_sitemapcsv.10.10.wrap
}
50 = TEXT
50 {
field = nav_title
replacement < lib.tue_sitemapcsv.10.10.replacement
wrap < lib.tue_sitemapcsv.10.10.wrap
}
60 = TEXT
60 {
field = description
replacement < lib.tue_sitemapcsv.10.10.replacement
wrap < lib.tue_sitemapcsv.10.10.wrap
}
100 = TEXT
100 {
value (
)
}
}
20 = HMENU
20 {
includeNotInMenu = 1
1 = TMENU
1 {
noBlur = 1
expAll = 1
NO {
doNotShowLink = 1
allStdWrap.cObject < lib.tue_sitemapcsv.10
}
}
2 < .1
3 < .1
4 < .1
5 < .1
6 < .1
}
}
[backend.user.isLoggedIn]
sitemapcsv = PAGE
sitemapcsv {
typeNum = 888
config {
disableAllHeaderCode = 1
xhtml_cleaning = 0
admPanel = 0
debug = 0
additionalHeaders = Content-type:text/csv;charset=utf-8|Content-Disposition:attachment; filename="sitemap.csv"
}
10 < lib.tue_sitemapcsv
}
[END]