nemo64 / canonical-url
使typo3能够知道它在哪个url上使用
v1.0.4
2019-06-18 07:56 UTC
Requires
- php: ~7.2
- typo3/cms-core: ~8.7.7 || ^9.5
- typo3/cms-frontend: ~8.7.7 || ^9.5
Requires (Dev)
Replaces
- canonical_url: v1.0.4
- typo3-ter/canonical-url: v1.0.4
README
EXT:canonical_url
此扩展为您的页面添加了一些规范url功能。
此扩展基于我的博客文章(德语),您可以在此处了解更多关于typo3中规范url的主题以及为什么它们不像应该的那样简单。
还有许多扩展已经提供了规范支持,但实现质量各不相同,但在这个扩展中,规范url只是许多功能之一。
此扩展仅关注如何处理当前页面的url,如果您想要完全控制,可以安装此扩展并仅使用typoscript扩展,无需对页面进行任何修改。
如果您需要规范参数,我鼓励您将此扩展用作扩展的依赖项。此扩展除了提供getText函数(以后可能还有更多方式,如视图助手)之外,不会做任何事情。集成者必须始终包含此扩展的静态typoscript才能产生任何效果。因此,它是一个安全的依赖项。
主要功能
静态TypoScript模板用于 <link rel="canonical">
此扩展为您添加了一个TypoScript。只需将名为 <link rel="canonical"> (canonical_url)
的静态包含添加到您的typoscript模板中即可。
TypoScript扩展 data = canonical_parameters
您可以使用新的 getText 函数 canonical_parameters
获取当前页面的查询字符串。这与addQueryString不同,因为它仅包括对缓存相关的参数,并因此使用 cHash机制 进行验证。
以下是一个创建当前页面链接的示例
lib.currentPageLink = TEXT lib.currentPageLink { value = Current page typolink { parameter.data = page:uid additionalParams.data = canonical_parameters useCacheHash = 1 } }
以下是一个创建包含最后一个条目为当前页面的面包屑的示例
lib.breadcrumb = HMENU lib.breadcrumb { wrap = <nav aria-label="breadcrumb"><ol class="breadcrumb">|</ol></nav> special = rootline special.range = 1|-1 includeNotInMenu = 1 1 = TMENU 1 { NO = 1 NO.wrapItemAndSub = <li class="breadcrumb-item">|</li> CUR < .NO CUR.additionalParams.data = canonical_parameters CUR.wrapItemAndSub = <li class="breadcrumb-item active" aria-current="page">|</li> CUR.stdWrap.data = TSFE:altPageTitle // page:nav_title // page:title CUR.doNotLinkIt = 1 } }
以下是一个实现hreflang的示例
page.headerData { 99 = TEXT 99.wrap = <link rel="alternate" hreflang="x-default" href="|"> 99.typolink { parameter.data = page:uid additionalParams.data = canonical_parameters additionalParams.wrap = |&L=0 } 100 < .99 100.wrap = <link rel="alternate" hreflang="en" href="|"> 100.typolink.additionalParams.wrap = |&L=0 101 < .99 101.wrap = <link rel="alternate" hreflang="de" href="|"> 101.typolink.additionalParams.wrap = |&L=1 }