georgringer / workspace-notification
Localized workspace stage change notifications with working preview links for records
Package info
github.com/georgringer/workspace_notification
Type:typo3-cms-extension
pkg:composer/georgringer/workspace-notification
Fund package maintenance!
Requires
- php: ^8.3
- typo3/cms-core: ^14.0 || ^15
- typo3/cms-workspaces: ^14.0 || ^15
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-14 14:59:38 UTC
README
Replaces the stage change notification mail of EXT:workspaces with one that is actually useful.
What you get
- Preview links that work for records. The core mail links to the storage folder a news or event record happens to live in. This one links to the detail page the record is displayed on.
- A link and a title per element instead of a single link for whichever element happened
to be first, and a bare list of
tt_content:411. - The mail in the recipient's language. Every recipient gets it in their own backend language — including the stage name in the subject. English and German ship with the extension.
Long stage changes are cut off after 50 elements, with the remainder reported as a count.
Installation
composer require georgringer/workspace-notification
Nothing else to activate. The extension takes over the notification as soon as it is installed.
Configuration
Preview links for records
For records, TYPO3 needs to know which page displays them. Without that, no link is rendered and the mail says "no preview available" — deliberately, instead of showing a link into a folder that does not work.
EXT:news ships everything already, you only have to point the setting at your detail
page: include the News site set and set news.preview.page in your site settings.
Own record types need this in page TSconfig:
TCEMAIN.preview.tx_myext_domain_model_event {
previewPageId = 42
fieldToParameterMap {
uid = tx_myext_event[event]
}
additionalGetParameters {
tx_myext_event.controller = Event
tx_myext_event.action = detail
}
}
previewPageId also accepts field:<fieldname> to read the page id from the record itself.
Pages need no configuration.
Sender, format, templates
The settings of EXT:workspaces keep working:
tx_workspaces.emails {
senderEmail = workspaces@example.org
senderName = Editorial team
format = html
}
To use your own template, register a path above key 100:
tx_workspaces.emails.templateRootPaths.200 = EXT:my_sitepackage/Resources/Private/Templates/Email/
and put a StageChangeNotification.fluid.html in there. Available variables:
affectedElements (each with table, uid, record, title, previewLink),
numberOfElements, notListedElements, workspace, nextStage, currentUser,
rootLine, pageId, additionalMessage, language.
recordTitle and previewLink still exist as well, both referring to the first element, so
that templates written against the core variable names keep rendering.
More languages
Copy Resources/Private/Language/locallang_emails.xlf to your extension as
<code>.locallang_emails.xlf, for example fr.locallang_emails.xlf, and register the path
via tx_workspaces.emails.templateRootPaths as above together with your own template.
Notes
- Preview links contain a token that works without a backend login. Treat the mails accordingly — anyone they are forwarded to can view the workspace content.
Requirements
TYPO3 v14 or v15, PHP 8.3+.
Background
Implements what Forge issue #105814 asks for, until it is solved in the core.