wazum/sluggi

TYPO3 URL别名瑞士军刀

12.0.2 2023-09-26 05:58 UTC

README

安装

使用composer安装最新包

composer require wazum/sluggi

TERpackagist上可用。

2023更新信息

  • 由于重写,扩展版本架构已更改。现在它与TYPO3 CMS版本相关联。因此,sluggi 12.x适用于TYPO3 CMS 12.x。
  • 所有旧版本/标签仍然可用。
  • 文档始终针对最新版本。有些功能可能不在旧版本中可用。

功能

  • 普通用户只能编辑他们有权编辑的页面别名部分。这意味着管理员可以限制对某些页面的页面别名编辑。
  • 当页面移动或复制时,该扩展会更新别名段,包括所有子页面。
  • 您可以将别名段自动与配置的字段(例如页面标题)同步,因此您在更改页面标题或移动页面时无需手动更新URL别名段。
  • 该扩展根据后备链计算页面别名。如果有替代页面标题,则将其使用。否则,将使用页面标题。您可以在扩展配置中更改用作JSON数组字符串的字段(更多内容请见下文)。
  • 默认情况下,新页面的页面别名中的正斜杠被替换为连字符,但现有页面不会受到影响,除非您重新计算别名。
  • 您可以设置一个标志,仅允许编辑URL的最后一部分(当前页面的段)。这对应于早期的"realurl"方法。
  • 您可以锁定别名段以防止更新。
  • 用户界面更舒适。例如,如果需要,可以隐藏重定向信息对话框,并且可以通过简单的双击编辑别名字段。

现在让我们更详细地看看一些功能。

与配置字段同步别名

如果启用设置(如下所示,默认为是),则当配置字段中的任何值更改时,URL别名段将自动调整。如果您直接通过页面树更改标题等,这也适用。

Slug synchronization

您可以通过以下复选框全局禁用或对单个页面进行禁用。URL段更新将在输入失去焦点或切换同步开关时立即进行。

限制页面编辑的别名

普通用户只能编辑他们有权编辑的页面别名部分。假设有一个数据库挂载,并且没有编辑其上方页面的权限,那么结果将如下所示

Restricted page slug editing

用户不允许更改页面树中“Praesent Elit”页面上的任何内容,因此也无法更改此页面的别名部分。

仅编辑最后一个URL别名段

您可以选择仅允许编辑URL别名的最后一部分。这对应于早期的"realurl"方法。

Last segment editing

锁定URL别名段

管理员或具有锁定字段适当权限的用户可以锁定页面URL段落的编辑。

Slug locking

锁定和同步是互斥的。

简单编辑

现在您只需双击slug字段即可进行编辑。编辑按钮仍然可用。

Simple edit

禁用重定向信息对话框

现在您可以通过设置(见下文)简单地隐藏重定向信息对话框,该设置在保存后会通知您所有子页面的所有slug都已更改,并提供撤销操作的可能性。这基本上提供不了多少额外价值。要么您想要自动为安装创建重定向,要么不创建(见下文)。根据我的经验,撤销最后操作(或其部分)的可能性在实际操作中并未使用,这增加了后端工作的复杂性。

Redirects info dialog

即使您没有禁用该对话框,它现在也会在合理的时间后关闭。之前,此对话框将永远可见。

扩展设置

您可以通过管理工具 > 设置 > 扩展配置来配置扩展的所有选项

Extension settings

更改设置后请清除缓存!

允许标准编辑器仅编辑URL slug的最后一段

同步

默认1(启用)

允许标准编辑器仅编辑URL slug的最后一段

last_segment_only

默认0(禁用)

用于生成slug的以下页面字段(有效的JSON数组!)

pages_fields

默认[["nav_title","title"]]

这必须是一个有效的JSON字符串!

具有额外权限的后端用户组ID列表

whitelist

默认

此组的成员在URL slug段方面将像管理员一样对待。

将slug段中的斜杠(/)替换为连字符(-)

slash_replacement

默认1(启用)

排除页面类型(默认为间隔符、回收器、文件夹)

exclude_page_types

默认199,255,254

此设置在您想同时使用sluggimasi时适用(见下文)。

对于这些页面类型,也将从后端界面中删除所有与slug相关的字段。

禁用slug更新和重定向信息对话框

disable_slug_update_information

默认0(禁用)

依赖关系和自动重定向

sluggi依赖于核心typo3/cms-redirects包,因为只有此扩展允许在更新父页面时递归更新页面slug。

如果您不希望创建自动重定向,您可以轻松地在网站配置中禁用它们(config/sites/my-site/config.yaml)。将autoCreateRedirects设置为false

settings:
   redirects:
     # Automatically update slugs of all sub pages
     # (default: true)
     autoUpdateSlugs: true
     # Automatically create redirects for pages with a new slug (works only in LIVE workspace)
     # (default: true)
     autoCreateRedirects: true
     # Time To Live in days for redirect records to be created - `0` disables TTL, no expiration
     # (default: 0)
     redirectTTL: 30
     # HTTP status code for the redirect, see
     # https://mdn.org.cn/en-US/docs/Web/HTTP/Redirections#Temporary_redirections
     # (default: 307)
     httpStatusCode: 307

来源:https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/10.1/Feature-89115-Auto-createRedirectsOnSlugChanges.html

与其他扩展的兼容性

masi (https://github.com/b13/masi)

如果您想要为文件夹设置slug或要排除某些页面,则需要masi。代码与masi(>= 2.0)兼容,并且有一个配置选项可以设置要排除的页面类型

# cat=basic; type=string; label=Exclude page types (Spacer, Recycler, Folder by default)
exclude_page_types=199,255,254

默认是核心使用的列表。如果您想使用masi,则将值设置为255(回收器)即可。

当您更改“排除此页面用于子页面slug生成”切换时,sluggi将为当前页面的所有子页面重新生成slug。如果您想要保留某些子页面的slug,您必须先锁定它们。

sluggi 移除了对 ['behaviour']['allowLanguageSynchronization'] 的配置,并将 'l10n_mode' = 'exclude' 设置为 exclude_slug_for_subpages 字段。在我看来这毫无意义,我不想处理可能出现的问题。

ig_slug (https://github.com/internetgalerie/ig_slug)

在版本12中,字段 tx_sluggi_lock 已经更名为 slug_locked,这样两个扩展就可以一起工作了。

使用提供的升级向导("迁移 tx_sluggi_lock 字段")将现有设置转移到新字段。之后您可以从数据库表 pages 中删除 tx_sluggi_lock

支持和功能请求

请使用 GitHub 上的 问题追踪器 来提出支持问题和关于扩展的新功能请求或想法。

赞助商

感谢 plan2net GmbH 允许我在工作时间工作于这个扩展。

特别感谢 TU München 和其他德国大学,它们资助我在 plan2net GmbH 的工作时间,用于进行一般改进、错误修复、新功能以及更新 PHP 8 和 TYPO3 CMS 12(包括某些早期版本中的错误修复的回端口)。

说谢谢!并支持我

你喜欢这个扩展吗?从我的愿望清单上给我点东西(惊喜!惊喜!)Amazon帮助我付钱下一份披萨或越南河粉(mjam)。非常感谢!