b13/uniquealiasmapper

注册用于URL增强的Mapper

安装: 2 329

依赖者: 0

建议者: 0

安全: 0

星星: 7

观察者: 8

分支: 2

开放性问题: 1

类型:typo3-cms-extension

1.1.0 2021-10-21 10:25 UTC

This package is auto-updated.

Last update: 2024-09-21 20:59:12 UTC


README

TYPO3 v9提供了一些增强URL的好方法,称为“增强器”,用于添加页面URL的后缀,以及“方面”(及其特殊的“映射器”类别),在应用程序和URL之间转换特定值。

此扩展包含一个名为UniqueAlias的新映射器。它的工作原理类似于人们从PersistedAliasMapper所知道的,然而在使用TYPO3安装时,我们的项目通常想要

  • 键唯一,即使两个记录具有相同的标题
  • 所有特殊字符和小写字母

安装

通过composer req b13/uniquealiasmapper使用它,或从TYPO3扩展存储库安装扩展uniquealiasmapper

一旦准备就绪,您可以在站点配置文件中配置映射器。

示例:tt_address.company

示例:将$_GET['addressid']映射到基于tt_addresscompany字段的/address/burger-king-germany

routeEnhancers:
  AliasExample:
    type: Simple
    routePath: '/address/{partneralias}'
    _arguments:
      partneralias: addressid
    aspects:
      partneralias:
        type: UniqueAlias
        tableName: 'tt_address'
        aliasField: 'company'
        expires: '15d'
        uniqueConfiguration:
          fallbackCharacter: '-'

tt_address的局部ListItem.html中,链接可以这样生成:<f:link.page pageUid="{settings.singlePid}" additionalParams="{addressid: address}">详情</f:link.page>

使用唯一别名映射器,URL将看起来像这样:https://example.com/my/page/address/burger-king-germany/

使用TYPO3的Core "PersistedAliasMapper",URL将看起来像这样 https://example.com/my/page/address/Burger%20King%20Germany/

此外,此映射器还包含一个缓存层,就像RealURL的“uniqAlias”功能在过去所做的那样。

还可以实现更复杂的路由增强器。例如,对于扩展myext中控制器/操作的链接(Movie/show),其中uid在参数tx_myext_pi1[content]中,而titletx_myext_domain_model_content的列

routeEnhancers:
  MyextPlugin:
    type: Extbase
    limitToPages:
      - 24
    extension: Myext
    plugin: Pi1
    routes:
      -
        routePath: '/entry/{myext_title}'
        _controller: 'Movie::show'
        _arguments:
          myext_title: content
    defaultController: 'Movie::list'
    aspects:
      myext_title:
        type: UniqueAlias
        tableName: tx_myext_domain_model_content
        aliasField: title
        expires: 15d
        uniqueConfiguration:
          fallbackCharacter: '-'

待办事项

过期功能还不够,因此我们需要改进这个区域。欢迎Pull Requests。

感谢

感谢RealURL作者提供了如此好的逻辑,这为本映射器提供了灵感。此外,感谢Aspects/Mappers的创建者,感谢他们提供了创建自定义映射器和增强器的灵活和可扩展的方式。

许可

与TYPO3 Core一样,uniquealiasmapper受GPL2或更新版本的许可。有关更多详细信息,请参阅LICENSE文件。

作者和维护

uniquealiasmapper最初由Benni Mack为b13,斯图加特的一个客户项目创建。

查看我们开发的更多TYPO3扩展,这些扩展有助于我们在客户项目中创造价值。作为我们工作方式的一部分,我们专注于测试和最佳实践,以确保我们代码的长期性能、可靠性和结果。