cpsit / cps-shortnr
使用短链接构建到页面和扩展记录的链接
3.2.0
2024-09-06 09:10 UTC
Requires
- typo3/cms-core: ^10.4 || ^11.5 || ^12.4
Requires (Dev)
Suggests
- friendsofphp/php-cs-fixer: Tool to automatically fix PHP coding standards issues
This package is auto-updated.
Last update: 2024-09-06 09:12:37 UTC
README
安装
- 在扩展管理器中激活扩展
配置
- 在扩展设置中定义一个
配置文件
- 调整
正则表达式
以满足您的需求 - 只有在确实需要并且您知道您在做什么的情况下,才应更改
pageNotFound_handling
的配置
配置文件
默认值
cps_shortnr {
decoder.data = register:tx_cpsshortnr_match_1
encoder {
field = tx_cpsshortnr_language_parent
dataWrap = {field:tx_cpsshortnr_identifier_upper}|
dataWrap.override = {field:tx_cpsshortnr_identifier_upper}|-{field:tx_cpsshortnr_language}
dataWrap.override.if.isTrue.field = tx_cpsshortnr_language
}
# Page
p {
source {
record.data = register:tx_cpsshortnr_match_2
table = pages
}
path {
typolink {
parameter.field = uid
addQueryString = 1
returnLast = url
additionalParams.wrap = &L=|
additionalParams.data = register:tx_cpsshortnr_match_3
additionalParams.required = 1
}
}
}
# News
n {
source {
record.data = register:tx_cpsshortnr_match_2
table = tx_news_domain_model_news
}
path {
typolink {
parameter = 1
addQueryString = 1
additionalParams.cObject = COA
additionalParams.cObject {
10 = TEXT
10 {
value = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]={field:uid}
insertData = 1
}
20 = TEXT
20 {
wrap = &L=|
required = 1
data = register:tx_cpsshortnr_match_3
}
}
returnLast = url
}
}
}
# Internal news
in < .n
in.source.encodeMatchFields.type = 1
}
cps_shortnr 对象
配置必须包裹在一个 cps_shortnr 对象中。
解码器
编码器
标识符配置
标识符的名称可以自由选择。您可能需要根据您的需求调整 正则表达式
。请注意,这个标识符应该是短的。
源
路径
正则表达式
默认值
([a-zA-Z]+)(\d+)[-]?(\d+)?
正则表达式用于将传入的 URL(短链接)拆分为不同的部分。这些部分可以用于 标识符配置
中。它们存储在 TSFE->register 变量中,以 tx_cpsshortnr_match_ 前缀开头(例如,tx_cpsshortnr_match_1、tx_cpsshortnr_match_2)。
PageNotFound_handling
有关详细信息,请参阅 Install Tool > 所有配置 > FE > pageNotFound_handling。
TypoScript API
示例
lib.shortlink = USER
lib.shortlink {
userFunc = CPSIT\CpsShortnr\Service\Shortlink->create
record.data = TSFE:id
table = pages
}
lib.newslink = USER
lib.newslink {
userFunc = CPSIT\CpsShortnr\Service\Shortlink->create
record.data = GP:tx_news_pi1|news
record.intval = 1
table = tx_news_domain_model_news
}
userFunc