Masi is the missing piece for the people who want to customize everything when generating URLs in TYPO3 v9+.
-
TYPO3 v9 skips pages of type "SysFolder" and "Spacers" by default when generating the URL of subpages. masi includes them by default!
-
masi also ships with a new checkbox for pages, to exclude a certain page slug when generating subpages. This way, you can exclude only certain SysFolders.
There is a CLI command to migrate the options from RealURL to the masi database field.
-
masi evaluates PageTSconfig where you can override your values.
TCEMAIN.pages.slug.generatorOptions { fields = company, city fieldSeparator = - }
-
masi allows you to set a hard prefix (!) for a specific page tree via PageTS:
TCEMAIN.pages.slug.generatorOptions { prefix = /wishlist/ }
Any prefix is added BEFORE the parent page prefix, but you can also disable the option "prefixParentPageSlug"
TCEMAIN.pages.slug.generatorOptions { prefixParentPageSlug = 0 }
Of course, all the values within the "slug" field can be changed by the editor, but it's here for convenience.
Use it via composer req b13/masi
or install the Extension masi
from the TYPO3 Extension Repository.
masi requires TYPO3 v9.5.6 or later.
If you want to migrate from RealURL, execute this one-time command as long as the database field pages.tx_realurl_exclude
exists, and transfers the data to pages.exclude_slug_for_subpages
:
`vendor/bin/typo3 database:migrate:masi`
As TYPO3 Core, masi is licensed under GPL2 or later. See the LICENSE file for more details.
This extension was created as a show-case on what you can do with one magic hook for TYPO3 v9 and customize so many things.
TYPO3 community often requests functionality, which can be put in small and efficient extensions, and masi does exactly that, without having to burden everything into TYPO3 Core.
masi was initially created by Benni Mack in 2019, for b13, Stuttgart, with the nice support from Martin Kutschker.
Find more TYPO3 extensions we have developed that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.