cpsit/cps-shortnr

使用短链接构建到页面和扩展记录的链接

安装: 759

依赖项: 0

建议者: 0

安全: 0

星星: 3

关注者: 5

分支: 2

开放问题: 0

类型:typo3-cms-extension

3.2.0 2024-09-06 09:10 UTC

This package is auto-updated.

Last update: 2024-09-06 09:12:37 UTC


README

Latest Stable Version Build Status StyleCI

安装

  • 在扩展管理器中激活扩展

配置

  • 在扩展设置中定义一个 配置文件
  • 调整 正则表达式 以满足您的需求
  • 只有在确实需要并且您知道您在做什么的情况下,才应更改 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