wazum / sluggi
TYPO3 URL别名瑞士军刀
Requires
- php: ^8.1
- typo3/cms-backend: ^12.4
- typo3/cms-core: ^12.4
- typo3/cms-redirects: ^12.4
Requires (Dev)
- b13/masi: ^2.0
- friendsofphp/php-cs-fixer: ^3.13
- phpspec/prophecy: ^1.15.0
- phpspec/prophecy-phpunit: ^2.0.1
- phpstan/phpstan: ^1.4.8
- slevomat/coding-standard: ^8.8
- squizlabs/php_codesniffer: ^3.7
- typo3/cms-install: ^12.4
- typo3/coding-standards: ^0.5.0
- vimeo/psalm: ^5.6
Suggests
- b13/masi: Add better control over slug generation (e.g. for folders).
- internetgalerie/ig-slug: Rebuild URL slugs.
- typo3/cms-install: Add ability to run migration upgrade wizard.
- dev-main
- 12.0.2
- 12.0.1
- 12.0.0
- v11.x-dev
- 11.1.2
- 11.1.1
- 11.1.0
- 11.0.1
- 11.0.0
- v10.x-dev
- 10.3.0
- 10.2.0
- 10.1.2
- 10.1.1
- 10.1.0
- 10.0.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.11.0
- 1.10.3
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.14
- 1.9.13
- 1.9.12
- 1.9.11
- 1.9.10
- 1.9.9
- 1.9.8
- 1.9.7
- 1.9.6
- 1.9.5
- 1.9.4
- 1.9.3
- 1.9.1
- 1.9.0
- 1.8.5
- 1.8.4
- 1.8.3
- 1.8.2
- 1.8.1
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.0
- dev-old
- dev-typo3-10
- dev-typo3-9-support
This package is auto-updated.
Last update: 2024-09-15 16:08:28 UTC
README
安装
使用composer安装最新包
composer require wazum/sluggi
2023更新信息
- 由于重写,扩展版本架构已更改。现在它与TYPO3 CMS版本相关联。因此,sluggi 12.x适用于TYPO3 CMS 12.x。
- 所有旧版本/标签仍然可用。
- 文档始终针对最新版本。有些功能可能不在旧版本中可用。
功能
- 普通用户只能编辑他们有权编辑的页面别名部分。这意味着管理员可以限制对某些页面的页面别名编辑。
- 当页面移动或复制时,该扩展会更新别名段,包括所有子页面。
- 您可以将别名段自动与配置的字段(例如页面标题)同步,因此您在更改页面标题或移动页面时无需手动更新URL别名段。
- 该扩展根据后备链计算页面别名。如果有替代页面标题,则将其使用。否则,将使用页面标题。您可以在扩展配置中更改用作JSON数组字符串的字段(更多内容请见下文)。
- 默认情况下,新页面的页面别名中的正斜杠被替换为连字符,但现有页面不会受到影响,除非您重新计算别名。
- 您可以设置一个标志,仅允许编辑URL的最后一部分(当前页面的段)。这对应于早期的"realurl"方法。
- 您可以锁定别名段以防止更新。
- 用户界面更舒适。例如,如果需要,可以隐藏重定向信息对话框,并且可以通过简单的双击编辑别名字段。
现在让我们更详细地看看一些功能。
与配置字段同步别名
如果启用设置(如下所示,默认为是),则当配置字段中的任何值更改时,URL别名段将自动调整。如果您直接通过页面树更改标题等,这也适用。
您可以通过以下复选框全局禁用或对单个页面进行禁用。URL段更新将在输入失去焦点或切换同步开关时立即进行。
限制页面编辑的别名
普通用户只能编辑他们有权编辑的页面别名部分。假设有一个数据库挂载,并且没有编辑其上方页面的权限,那么结果将如下所示
用户不允许更改页面树中“Praesent Elit”页面上的任何内容,因此也无法更改此页面的别名部分。
仅编辑最后一个URL别名段
您可以选择仅允许编辑URL别名的最后一部分。这对应于早期的"realurl"方法。
锁定URL别名段
管理员或具有锁定字段适当权限的用户可以锁定页面URL段落的编辑。
锁定和同步是互斥的。
简单编辑
现在您只需双击slug字段即可进行编辑。编辑按钮仍然可用。
禁用重定向信息对话框
现在您可以通过设置(见下文)简单地隐藏重定向信息对话框,该设置在保存后会通知您所有子页面的所有slug都已更改,并提供撤销操作的可能性。这基本上提供不了多少额外价值。要么您想要自动为安装创建重定向,要么不创建(见下文)。根据我的经验,撤销最后操作(或其部分)的可能性在实际操作中并未使用,这增加了后端工作的复杂性。
即使您没有禁用该对话框,它现在也会在合理的时间后关闭。之前,此对话框将永远可见。
扩展设置
您可以通过管理工具 > 设置 > 扩展配置来配置扩展的所有选项
更改设置后请清除缓存!
允许标准编辑器仅编辑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
此设置在您想同时使用sluggi和masi时适用(见下文)。
对于这些页面类型,也将从后端界面中删除所有与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
与其他扩展的兼容性
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)。非常感谢!