Zum Inhalt springen

Typo3/Workspaces/Verwaltung: Unterschied zwischen den Versionen

Aus Foxwiki
 
(23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
Die Versionierung ist in der Kern-API standardmäßig verfügbar, aber um Zugang zu den Verwaltungswerkzeugen zu erhalten, müssen Sie die Systemerweiterung "Workspaces" installieren
Die Versionierung ist in der Kern-API standardmäßig verfügbar, aber um Zugang zu den Verwaltungswerkzeugen zu erhalten, müssen Sie die Systemerweiterung "Workspaces" installieren


=== Installation ===
== Installation ==
Diese Erweiterung ist Teil des TYPO3 Core, wird aber nicht standardmäßig installiert
Diese Erweiterung ist Teil des TYPO3 Core, wird aber nicht standardmäßig installiert


==== Installation mit Composer ====
==== Installation mit Extension-Manager ====
Prüfen Sie, ob Sie die Erweiterung bereits mit verwenden:
composer show | grep workspaces
 
Dies sollte Ihnen entweder kein Ergebnis oder etwas ähnliches liefern:
typo3/cms-workspaces v12.4.11
 
Wenn sie noch nicht installiert ist, verwenden Sie den Befehl <tt>composer require</tt>, um die Erweiterung zu installieren:
composer require typo3/cms-workspaces
 
Die angegebene Version hängt von der Version des TYPO3 Core ab, die Sie verwenden
 
==== Installation ohne Composer ====
Bei einer Installation ohne Composer wird die Erweiterung bereits ausgeliefert, ist aber möglicherweise noch nicht aktiviert
Bei einer Installation ohne Composer wird die Erweiterung bereits ausgeliefert, ist aber möglicherweise noch nicht aktiviert


Zeile 32: Zeile 20:
Erweiterungsmanager mit der Erweiterung Workspaces
Erweiterungsmanager mit der Erweiterung Workspaces


==== Installation mit Composer ====
Prüfen Sie, ob Sie die Erweiterung bereits mit verwenden:
composer show | grep workspaces


=== Technische Details ===
Dies sollte Ihnen entweder kein Ergebnis oder etwas ähnliches liefern:
Die Versionsverwaltung muss für jede Tabelle in der [https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Ctrl/Index.html#ctrl "ctrl"-Sektion des TCA-Arrays] für die jeweilige Tabelle aktiviert werden
typo3/cms-workspaces v12.4.11
* Darüber hinaus muss ein fester Satz von Feldern für die Verwaltung von Versionen vorhanden sein
* Alle diese technischen Details sind in der [https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Ctrl/Index.html#ctrl-reference-versioningws Beschreibung der TCA-Eigenschaft "versioningWS"] aufgeführt
* Dort sind auch alle anderen versionierungs- und arbeitsbereichsbezogenen Eigenschaften beschrieben


Zukünftige und vergangene Versionen von Datensätzen in TYPO3 CMS bleiben in der gleichen Tabelle wie die Live-Version
Wenn sie noch nicht installiert ist, verwenden Sie den Befehl <tt>composer require</tt>, um die Erweiterung zu installieren:
* Allerdings haben alle "Offline"-Versionen einen pid-Wert von "-1", um sie zu unterscheiden
composer require typo3/cms-workspaces
* Außerdem haben sie ein Datenbankfeld mit dem Namen "t3ver_oid", das auf ihr Live-Pendant ("online") verweist


Wenn eine zukünftige/vergangene Version mit der Live-Version ausgetauscht wird, geschieht dies durch ''Austausch aller Feldwerte außer den Feldern uid und pid'' (und natürlich werden versionierungsbezogene Felder entsprechend ihrer Funktion manipuliert)
Die angegebene Version hängt von der Version des TYPO3 Core ab, die Sie verwenden
* Das bedeutet, dass der Online-Inhalt immer durch dieselbe ID identifiziert wird wie zuvor und daher alle Referenzen intakt bleiben
 
Die Versionierung ist für bestehende Elemente einfach
* Das Verschieben, Erstellen und Löschen wirft jedoch andere Probleme auf
* Dies wird auf folgende Weise gelöst:* Das Löschen von Elementen erfolgt durch die Erstellung einer neuen Version des Elements ''und'' das Setzen einer Markierung in der neuen Version (<tt>t3ver_</tt>), die angibt, dass das aktive Element bei der Veröffentlichung der Versionen gelöscht werden muss
* Bei der Erstellung von Elementen wird zunächst ein Platzhalter-Element erstellt, das tatsächlich live ist, aber eine Markierung (<tt>t3ver_</tt>) trägt, die es online unsichtbar macht
* Dann wird eine neue Version dieses Platzhalters mit dem Flag (<tt>t3ver_</tt>) erstellt, die bis zur Veröffentlichung geändert wird
* Das Verschieben von Elementen erfolgt, indem zunächst ein Platzhalterelement erstellt wird, das in der Tat live ist, aber eine Markierung (<tt>t3ver_</tt>) trägt, die es online unsichtbar macht
* Es hat auch ein Feld, "t3ver_move_id", das die uid des zu verschiebenden Datensatzes (Quelldatensatz) enthält
* Außerdem wird eine neue Version des Quelldatensatzes mit <tt>t3ver_</tt> (move-to pointer) erstellt
* Diese Version ist notwendig, damit das Versionierungssystem etwas hat, das es für den Verschiebevorgang veröffentlichen kann
* Zusammengefasst werden also zwei Datensätze für einen Verschiebevorgang in einem Arbeitsbereich erstellt: Der Platzhalter (online, mit <tt>t3ver_</tt> und "t3ver_move_id") und eine neue Version (<tt>t3ver_</tt>) des Online-Quelldatensatzes (der, der verschoben wird)
 
==== Eindeutige Felder ====
* Eindeutige Felder wie ein Seitenalias oder ein Benutzername sind in einem Versionierungsszenario heikel, da der Veröffentlichungsprozess eine Prüfung durchführen muss, ob das Feld in der "Live"-Situation eindeutig ist
* Das bedeutet, dass wir eine Lösung gewählt haben, bei der eindeutige Felder überhaupt nicht ausgetauscht werden! Dies bedeutet, dass die Veröffentlichung einer neuen Version einer Seite den Alias der Live-Version nicht ändern kann und wird
* Der eindeutige Wert "Live" bleibt erhalten, bis er in der Live-Version geändert wird
* Sie können Felder mit dem Schlüsselwort "unique" ausblenden, wenn es Offline-Versionen gibt
 
Dies geschieht mit der Anzeigebedingung:
'displayCond' => 'VERSION:IS:false',
 
==== Berechtigungen ====
Dies ist ein Überblick über die Handhabung von Berechtigungen im Zusammenhang mit der Versionierung:
 
===== Anzeigen =====
* Leseberechtigungen werden auf der Grundlage der Live-Version von Seiten ausgewertet (als Grundregel)
* Die Leseberechtigungen der Offline-Seitenversion in einem Arbeitsbereich werden nicht berücksichtigt
* Es wird die ID des Live-Datensatzes verwendet, damit die Anzeigeberechtigungen des Live-Datensatzes ausgewertet werden
 
===== Versionierung von Datensätzen =====
* Um eine neue Version zu erstellen, muss der Benutzer Leserechte für den Live-Datensatz haben, den er versionieren möchte
* Eine neue Version einer Seite erbt die Einstellungen für den Eigentümer, die Gruppe und die Berechtigungen aus dem Live-Datensatz
 
===== Version veröffentlichen =====
* Um zu veröffentlichen, muss ein Benutzer über allgemeine Veröffentlichungsrechte im Arbeitsbereich verfügen, z.B
* muss er der Eigentümer des Arbeitsbereichs sein oder Zugriff auf den Live-Arbeitsbereich haben
* Außerdem muss der Benutzer Lese- und Bearbeitungsrechte für die zu veröffentlichende Offline-Version sowie Bearbeitungsrechte für die ''Live-Version'' haben, die durch eine Veröffentlichungsaktion ersetzt wird!
* Die Berechtigungen einer neuen Version einer Seite folgen der Seite, wenn sie veröffentlicht wird
 
===== Bearbeiten von Datensätzen =====
* Für alle Bearbeitungen ist es erforderlich, dass die Stufe des versionierten Datensatzes (oder der Wurzelpunkt) die Bearbeitung zulässt
* Seitendatensätze:
** Die Berechtigung zur Bearbeitung wird immer anhand der Berechtigungseinstellungen der Seite und nicht anhand der Live-Datensätze bewertet
* Datensätze aus Nicht-Seiten-Tabellen:
** Basiert immer auf der übergeordneten Live-Seite
 
===== Neue Datensätze =====
* Wenn neue Datensätze mit einer Version und einem Live-Platzhalter erstellt werden, hängen die Berechtigungen von der Live-Seite ab, unter der der Datensatz erstellt wird
 
===== Verschieben von Datensätzen =====
* Datensätze können verschoben werden, solange die Quell- und Zielwurzel auf eine Stufe zeigen, die dies zulässt
* Neue Datensätze, die mit einem Platzhalterelement erstellt wurden, können frei verschoben werden
* Im Allgemeinen muss die Stufe eines verschobenen Datensatzes die Bearbeitung sowie die regulären Berechtigungen für das Verschieben zulassen
 
===== Löschen von Datensätzen =====
* Wenn ein Datensatz die Versionierung unterstützt, wird er zum Löschen markiert, wenn alle üblichen Voraussetzungen zum Zeitpunkt der Löschanfrage erfüllt sind: Löschzugriff auf den Datensatz, keine Unterseiten, wenn rekursives Löschen nicht aktiviert ist, und keine unzulässigen Tabellensätze gefunden werden
* Sobald der Datensatz zum Löschen markiert ist, werden alle Änderungen am Datensatz und an den Unterseiten, die sonst das Löschen für den Benutzer verhindern würden, nicht mehr wirksam
* Der Datensatz ''wird'' bei Veröffentlichung gelöscht!
* Wenn Sie versuchen, einen Live-Datensatz zu löschen, für den eine Version im Arbeitsbereich gefunden wird, wird stattdessen diese Version gelöscht
* Das Entfernen von Versionen aus einem Arbeitsbereich und das Erhöhen der Versionsstufe ist möglich, solange der Benutzer Bearbeitungsrechte für den Datensatz besitzt
 
===== Dateien / Assets / Ressourcen =====
Zur Verwaltung von Dateien/Assets (im Gegensatz zu Datensätzen/Seiten) wird der Live-Arbeitsbereich verwendet
* Das bedeutet, dass für den Zugriff auf Backend-Module wie das Dateilistenmodul entsprechende Rechte für den Live-Arbeitsbereich festgelegt werden müssen


== Arbeitsbereiche ==
== Arbeitsbereiche ==
Zeile 117: Zeile 39:


Ein Arbeitsbereich ist ein Zustand im Backend von TYPO3 CMS
Ein Arbeitsbereich ist ein Zustand im Backend von TYPO3 CMS
* Grundsätzlich gibt es zwei Arten von Arbeitsbereichen:* LIVE-Arbeitsbereich: Dies ist genau der Zustand, in dem sich TYPO3 CMS immer befunden hat
 
Grundsätzlich gibt es zwei Arten von Arbeitsbereichen:
* LIVE-Arbeitsbereich: Dies ist genau der Zustand, in dem sich TYPO3 CMS immer befunden hat
* Jede Änderung, die Sie vornehmen, wird sofort live sein
* Jede Änderung, die Sie vornehmen, wird sofort live sein
* Es hat sich nichts geändert, er hat nur einen Namen bekommen
* Es hat sich nichts geändert, er hat nur einen Namen bekommen
Zeile 151: Zeile 75:
* Nichtsdestotrotz kann ein hohes Maß an Konsistenz erreicht werden, indem die von TYPO3 CMS bereitgestellte API genutzt wird
* Nichtsdestotrotz kann ein hohes Maß an Konsistenz erreicht werden, indem die von TYPO3 CMS bereitgestellte API genutzt wird
* Diese Funktionen und die Herausforderungen, die sie lösen sollen, werden in [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Workspaces/Index.html#workspaces TYPO3 erklärt] behandelt
* Diese Funktionen und die Herausforderungen, die sie lösen sollen, werden in [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Workspaces/Index.html#workspaces TYPO3 erklärt] behandelt
== Erstellen eines benutzerdefinierten Arbeitsbereichs ==
Außer dem LIVE-Arbeitsbereich (d.&nbsp;h.&nbsp;der Standard-Arbeitsumgebung von TYPO3 CMS) müssen einige benutzerdefinierte Arbeitsbereiche erstellt werden, bevor die in diesem Dokument beschriebenen Funktionen genutzt werden können
Standardmäßig enthält ein benutzerdefinierter Arbeitsbereich drei Stufen, die Schritte im Validierungsprozess darstellen: "Bearbeitung", "bereit zur Veröffentlichung" und "Veröffentlichung ausführen"
* Es können weitere Stufen hinzugefügt werden
Um das folgende Element zu erreichen, müssen Sie zur Stammseite gehen (die Seite mit dem TYPO3-Symbol im Seitenbrowser), auf "Neuen Datensatz erstellen" klicken und einen Systemdatensatz vom Typ "Arbeitsbereich" erstellen
Dieses Kapitel beschreibt alle Eigenschaften eines Arbeitsbereichs, wie sie im Bearbeitungsformular erscheinen, gruppiert nach Registerkarten
=== Allgemein ===
[[Image:CustomWorkspaceGeneralTab.pngBild3.png|top|alt="The General tab of a custom workspace"]]
Eingabe der allgemeinen Informationen zum Arbeitsbereich
Wie bei den meisten Einträgen im TYPO3 CMS Universum geht es auch hier nur darum, einen klaren Titel und eine hilfreiche Beschreibung zu setzen
=== Benutzer ===
[[Image:CustomWorkspaceUsersTab.pngBild4.png|top|alt="The Users tab of a custom workspace"]]
Einrichten von Eigentümern und Mitgliedern des Arbeitsbereichs
Auf dieser Registerkarte geht es um die Einrichtung von Benutzerberechtigungen
* Die "Eigentümer" haben alle möglichen Rechte über den Arbeitsbereich, einschließlich der Veröffentlichung zum Leben. "Mitglieder" haben ebenfalls alle Rechte, obwohl sie mit der Einstellung "Nur Arbeitsbereichseigentümer kann veröffentlichen" an der Veröffentlichung gehindert werden können (siehe Registerkarte [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#custom-workspace-other Andere])
; Hinweis
: Wie üblich ist es empfehlenswert, mit Gruppen statt mit einzelnen Benutzern zu arbeiten. "Admin"-Benutzer haben Zugriff auf alle Arbeitsbereiche und alle Operationen innerhalb der Arbeitsbereiche
; Hinweis
: Den Benutzern muss ausdrücklich Zugang zum LIVE-Arbeitsbereich gewährt werden
:* Dies geschieht auf der Ebene der Backend-Benutzer oder Backend-Gruppen
[[Image:LiveWorkspacesPermission.pngBild5.png|top|alt="Access to the live workspace"]]
Zugriff auf den LIVE-Arbeitsbereich für eine Backend-Gruppe gewähren
=== Benachrichtigungseinstellungen ===
[[Image:CustomWorkspaceNotificationsTab.pngBild6.png|top|alt="The Notification settings tab of a custom workspace"]]
Fein abgestimmte Definition des Benachrichtigungsprozesses
Jedes Mal, wenn eine bestimmte Änderung oder ein Satz von Änderungen von einem Stadium in ein anderes übergeht (entweder vorwärts oder rückwärts im Überprüfungsprozess), können Personen über diese Statusänderung benachrichtigt werden
* Auf dieser Registerkarte wird das Verhalten des Benachrichtigungsprozesses festgelegt
Mit "Benachrichtigung über Stufenänderung per E-Mail" können Sie festlegen, wer benachrichtigt werden soll
* Dies können entweder alle am Arbeitsbereich beteiligten Benutzer sein (unabhängig von der Stufe) oder nur die Benutzer, die an der Stufe beteiligt sind, an die die Änderungen gesendet werden
Anschließend können Sie Einstellungen für die drei vordefinierten Phasen konfigurieren
; Hinweis
: Das Bildschirmfoto ist beschnitten
:* Die Einstellungen sind für jede Stufe die gleichen
Beim "Einstellungsdialog" handelt es sich um das Popup-Fenster, das nach jedem Überprüfungsvorgang erscheint
* Wenn das Kontrollkästchen "Dialog anzeigen" nicht aktiviert ist, zeigt das Popup-Fenster keine Benachrichtigungseinstellungen an und die Benachrichtigungen werden gemäß den vordefinierten Einstellungen gesendet
* Wenn das Kontrollkästchen "änderbare Vorauswahl" aktiviert ist, kann die vorausgewählte Liste der zu benachrichtigenden Benutzer vor dem Senden der Änderungsbenachrichtigung geändert werden
Mit der Einstellung "Vorauswahl" können Sie festlegen, welche Benutzer standardmäßig im Benachrichtigungs-Popup vorgewählt werden sollen
* Außerdem können bestimmte Benutzer über das Feld "Standardempfänger der Benachrichtigungsmail" zur Liste der benachrichtigten Personen hinzugefügt werden
=== Einhängepunkte ===
[[Image:CustomWorkspaceMountpointsTab.pngBild7.png|top|alt="The Mountpoints tab of a custom workspace"]]
Einstellen eines alternativen Einhängepunkts für den Arbeitsbereich
Ein Arbeitsbereich kann auf einen oder mehrere Einhängepunkte beschränkt werden
* Diese müssen nicht mit den Einhängepunkten der Benutzer und Gruppen übereinstimmen, die Zugriff auf diesen Arbeitsbereich haben
Wenn keine Einhängepunkte definiert sind, werden die Einhängepunkte der Benutzer und der Gruppen, denen sie angehören, verwendet
=== Veröffentlichung ===
[[Image:CustomWorkspacePublishingTab.pngBild8.png|top|alt="The Publishing tab of a custom workspace"]]
Auswahl eines Veröffentlichungsdatums für den benutzerdefinierten Arbeitsbereich
Wenn ein Veröffentlichungsdatum festgelegt wird, wird der Inhalt des Arbeitsbereichs automatisch an dem angegebenen Datum veröffentlicht
* Dazu muss die Scheduler-Aufgabe "Automatische Veröffentlichung von Arbeitsbereichen" aktiviert sein
; Hinweis
Nur der Inhalt, der "bereit zur Veröffentlichung" ist, wird tatsächlich veröffentlicht
=== Inszenierung ===
Es kann eine beliebige Anzahl von benutzerdefinierten Stufen erstellt werden
* Jede entspricht einem zusätzlichen Schritt im Überprüfungsprozess
* Benutzerdefinierte Stufen können nach Belieben bestellt werden
* Sie kommen jedoch alle nach der Standardstufe "Bearbeitung" und vor der Standardstufe "Bereit zur Veröffentlichung"
[[Image:CustomWorkspaceStagingTabGeneral.pngBild9.png|top|alt="The Staging tab of a custom workspace"]]
Einstellung der allgemeinen Informationen einer benutzerdefinierten Bühne
Auf der Registerkarte "Allgemein" einer benutzerdefinierten Stufe kann eine eingeschränkte Gruppe von Benutzern unter "Eigentümern" und "Mitgliedern" ausgewählt werden
* Sie werden "Verantwortliche Personen" genannt
[[Image:CustomWorkspaceStagingTabNotifications.pngBild10.png|top|alt="The Staging tab of a custom workspace"]]
Definieren der Benachrichtigungseinstellungen einer benutzerdefinierten Stufe
Die Benachrichtigungseinstellungen für eine benutzerdefinierte Stufe sind größtenteils dieselben wie für die Standardstufen, außer dass die "verantwortlichen Personen" auch in der vordefinierten Liste der zu benachrichtigenden Benutzer ausgewählt werden können und dass ein "Standard-E-Mail-Kommentar" für diese Stufe definiert werden kann
; Hinweis
: Mit "Bearbeiter" sind in diesem Zusammenhang die Personen gemeint, die ursprünglich an der Änderung beteiligt waren
=== Sonstiges ===
[[Image:CustomWorkspaceOtherTab.pngBild11.png|top|alt="The Other tab of a custom workspace"]]
Verschiedene Einstellungen für einen benutzerdefinierten Arbeitsbereich
Die Registerkarte "Sonstiges" enthält verschiedene Einstellungen, die das Verhalten des benutzerdefinierten Arbeitsbereichs beeinflussen
Das Kennzeichen "Bearbeitung einfrieren" blockiert alle Vorgänge im Arbeitsbereich, bis es wieder deaktiviert wird
Es ist möglich, die Bearbeitung von nicht-versionsfähigen Datensätzen im benutzerdefinierten Arbeitsbereich zuzulassen
* Diese Datensätze werden "live" bearbeitet, d.h
* alle Änderungen, die im Arbeitsbereich vorgenommen werden, sind direkt auf der Website sichtbar und durchlaufen nicht den Überprüfungsprozess
Die Einstellung "Tauschmodi" legt fest, ob bei der automatischen Veröffentlichung ein Tausch stattfinden soll oder nicht
Mit der Einstellung "Zugriff auf Veröffentlichung" werden die Veröffentlichungsrechte weiter verfeinert
* Wenn das Kontrollkästchen "Nur Inhalte im Veröffentlichungsstadium veröffentlichen" aktiviert ist, können geänderte Inhalte von den Arbeitsbereichseigentümern in keinem Stadium zwangsweise veröffentlicht werden
* Er muss erst das Stadium "Bereit zur Veröffentlichung" erreichen
* Die Veröffentlichung kann auch auf die Eigentümer des Arbeitsbereichs beschränkt werden (d.&nbsp;h.&nbsp;Mitglieder dürfen nicht veröffentlichen)
== Konfigurationsoptionen ==
Es gibt eine Reihe von Eigenschaften von User TSconfig und Page TSconfig, die sich auf Arbeitsbereiche beziehen
Hinweis
Einige dieser Optionen werden eigentlich von der Systemerweiterung "Version" behandelt, gelten aber für Arbeitsbereiche.* [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#page-tsconfig Seite TSconfig]
** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#workspaces Arbeitsbereiche]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#splitpreviewmodes splitPreviewModes]
** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#options-workspaces options.workspaces]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#previewpageid previewPageId]
** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#tx-version-workspaces tx_version.workspaces]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#stagenotificationemail-subject stageNotificationEmail.subject]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#stagenotificationemail-message stageNotificationEmail.message]
* [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#user-tsconfig Benutzer TSconfig]
** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#options-workspaces options.workspaces]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#enablemassactions enableMassActions]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#previewlinkttlhours previewLinkTTLHours]
*** [https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html#allowed-languages Erlaubte_Sprachen]
=== Seite TSconfig ===
==== Arbeitsbereiche ====
===== splitPreviewModes =====
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">Zeichenkette </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Durch Kommata getrennte Liste der zulässigen Werte für Vorschaumodi
* Mögliche Werte sind "slider", "vbox" und "hbox".</div>
<div style="margin-left:1cm;">'''Beispiel'''</div>
workspaces.splitPreviewModes = slider
<div style="margin-left:1cm;">wird der Vorschaumodus auf "Schieberegler" beschränkt.</div>
<div style="margin-left:0cm;">Standard </div>
<div style="margin-left:1cm;">Schieberegler, vbox, hbox </div>
==== options.workspaces ====
===== VorschauSeitenId =====
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">Integer / FeldReferenz pro Tabelle </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Seiten-Uid, die für die Vorschau von Datensätzen in einem Arbeitsbereich verwendet wird.</div>
<div style="margin-left:1cm;">'''Beispiele'''</div>
<nowiki># Using page 123 for previewing workspaces records (in general)</nowiki>
options.workspaces.previewPageId = 123
<nowiki># Using the pid field of each record for previewing (in general)</nowiki>
options.workspaces.previewPageId = field:pid
<nowiki># Using page 123 for previewing workspaces records (for table tx_myext_table)</nowiki>
options.workspaces.previewPageId.tx_myext_table = 123
<nowiki># Using the pid field of each record for previewing (for table tx_myext_table)</nowiki>
options.workspaces.previewPageId.tx_myext_table = field:pid
Hinweis
<div style="margin-left:1cm;">Wenn sie in Verbindung mit dem [https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/PageTsconfig/TceMain.html#pagetcemain-preview Backend-Vorschau-Mechanismus] verwendet wird, hat diese Einstellung Vorrang vor der <tt>Vorschau</tt>, die in <tt>TCEMAIN.</tt> definiert ist.</div>
==== tx_version.workspaces ====
===== stageNotificationEmail.subject =====
(<tt>tx_</tt>)
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">String / Lokalisierte String-Referenz (unter Verwendung der <tt>LLL:</tt>-Syntax). </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Der Standard-Betreff für die E-Mail zur Bühnenbenachrichtigung.</div>
<div style="margin-left:1cm;">Die folgenden Markierungen können als Ersatz verwendet werden:</div>* <tt><nowiki>###SITE_</nowiki></tt>
* <tt><nowiki>###SITE_</nowiki></tt>
* <tt><nowiki>###WORKSPACE_</nowiki></tt>
* <tt><nowiki>###WORKSPACE_</nowiki></tt>
* <tt><nowiki>###ELEMENT_</nowiki></tt>
* <tt><nowiki>###NEXT_</nowiki></tt>
* <tt><nowiki>###COMMENT###</nowiki></tt>
* <tt><nowiki>###USER_</nowiki></tt>
* <tt><nowiki>###USER_</nowiki></tt>
* <tt><nowiki>###RECORD_</nowiki></tt>
* <tt><nowiki>###RECORD_</nowiki></tt>
<div style="margin-left:0cm;">Standardmäßig </div>
<div style="margin-left:1cm;">LLL:EXT:version/Resources/Private/Language/emails.xml:subject </div>
===== stageNotificationEmail.message =====
(<tt>tx_</tt>)
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">String / Lokalisierte String-Referenz (unter Verwendung der <tt>LLL:</tt>-Syntax). </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Die Standardnachricht für die E-Mail der Stufenbenachrichtigung
* Es stehen die gleichen Markierungen zur Verfügung wie für den Betreff (siehe oben). </div>
<div style="margin-left:0cm;">Standardmäßig </div>
<div style="margin-left:1cm;">LLL:EXT:version/Resources/Private/Language/emails.xml:message </div>
=== Benutzer TSconfig ===
==== options.workspaces ====
===== enableMassActions =====
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">Boolescher Wert </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Wenn diese Option auf "0" gesetzt wird, ist das Menü für Massenaktionen für die Benutzer nicht verfügbar. </div>
<div style="margin-left:0cm;">Standardwert </div>
<div style="margin-left:1cm;">1 </div>
===== previewLinkTTLHours =====
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">Ganzzahl </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Anzahl der Stunden bis zum Verfall von Vorschaulinks zu Arbeitsbereichen. </div>
<div style="margin-left:0cm;">Standard </div>
<div style="margin-left:1cm;">48 </div>
===== erlaubte_Sprachen =====
<div style="margin-left:0cm;">Eigenschaft </div>
<div style="margin-left:1cm;">workspaces.allowed_languages.[workspaceId] </div>
<div style="margin-left:0cm;">Datentyp </div>
<div style="margin-left:1cm;">''(Liste von sys\_language ids)'' </div>
<div style="margin-left:0cm;">Beschreibung </div>
<div style="margin-left:1cm;">Dies ist eine Liste von sys_language uids, die in einem Arbeitsbereich erlaubt sind
* Wenn diese Liste gesetzt ist, hat sie Vorrang vor der Liste der erlaubten Sprachen in der BE-Benutzergruppenkonfiguration.</div>
<div style="margin-left:1cm;">'''Beispiel'''</div>
options.workspaces.allowed_languages.3 = 1,2
<div style="margin-left:1cm;">In diesem Beispiel wird der Benutzer auf Sprachen mit "uid" 1 oder 2 im Arbeitsbereich mit "uid" 3 beschränkt.</div>


== Planer-Aufgaben ==
== Planer-Aufgaben ==
Zeile 449: Zeile 89:
* Diese Aufgabe löscht jeden Link, der abgelaufen ist. </div>
* Diese Aufgabe löscht jeden Link, der abgelaufen ist. </div>


== PSR-14-Ereignisse ==
Die folgenden PSR-14-Ereignisse sind zur Erweiterung der Funktionalität verfügbar:


=== AfterCompiledCacheableDataForWorkspaceEvent ===
# https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html
Findet alle cachebaren Daten von Versionen eines Arbeitsbereichs. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/AfterCompiledCacheableDataForWorkspaceEvent.html#AfterCompiledCacheableDataForWorkspaceEvent Mehr Details]


=== AfterDataGeneratedForWorkspaceEvent ===
== Arbeitsbereich-Protokoll ==
Findet alle Daten von Versionen eines Arbeitsbereichs. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/AfterDataGeneratedForWorkspaceEvent.html#AfterDataGeneratedForWorkspaceEvent Mehr Details]
; Systemprotokoll
* spiegelt die Vorgänge im Arbeitsbereich wider
* In der Spalte "Benutzer" erscheint der Name des Arbeitsbereichs unterhalb des Benutzernamens


=== AfterRecordPublishedEvent ===
; Protokoll der Workspaces-bezogenen Vorgänge
Das Ereignis wird ausgelöst, nachdem ein Datensatz in einem Arbeitsbereich veröffentlicht worden ist. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/AfterRecordPublishedEvent.html#AfterRecordPublishedEvent Mehr Details]
[[Image:WorkspaceLogging.png|mini|950px|Workspaces and logging]]
 
<br clear=all>
=== GetVersionedDataEvent ===
Findet alle vorbereiteten / bereinigten Daten von Versionen eines Arbeitsbereichs. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/GetVersionedDataEvent.html#GetVersionedDataEvent Mehr Details]
 
=== ModifyVersionDifferencesEvent ===
Ändern Sie die Daten der Versionsunterschiede. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/ModifyVersionDifferencesEvent.html#ModifyVersionDifferencesEvent Mehr Details]
 
=== SortVersionedDataEvent ===
Das Ereignis wird nach dem Sortieren aller Daten für Versionen eines Arbeitsbereichs ausgelöst. [https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Workspaces/SortVersionedDataEvent.html#SortVersionedDataEvent Mehr Details]
 
 
# https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html


[[Kategorie:Typo3/Extension]]
[[Kategorie:Typo3/Workspaces]]

Aktuelle Version vom 30. Juli 2025, 12:48 Uhr

Versionierung

TYPO3 CMS bietet eine Versionierung der Datenbankelemente, die es verwaltet

  • Dieses Versionierungssystem ermöglicht es Ihnen, an zukünftigen Versionen von Inhalten zu arbeiten, ohne dass der aktuelle Inhalt beeinträchtigt wird
  • Es wird von Workflow-Systemen verwendet, um einen Prozess für solche Inhalte anzubieten, der von der Erstellung über die Bearbeitung bis zur Überprüfung und Veröffentlichung reicht

Die Versionierung ist in der Kern-API standardmäßig verfügbar, aber um Zugang zu den Verwaltungswerkzeugen zu erhalten, müssen Sie die Systemerweiterung "Workspaces" installieren

Installation

Diese Erweiterung ist Teil des TYPO3 Core, wird aber nicht standardmäßig installiert

Installation mit Extension-Manager

Bei einer Installation ohne Composer wird die Erweiterung bereits ausgeliefert, ist aber möglicherweise noch nicht aktiviert

Aktivieren Sie sie wie folgt
  1. Navigieren Sie im Backend zum Modul Admin Tools > Extensions
  2. Klicken Sie auf das Symbol Aktivieren für die Erweiterung "Workspaces"

"Extension manager showing Workspaces extension"

Erweiterungsmanager mit der Erweiterung Workspaces

Installation mit Composer

Prüfen Sie, ob Sie die Erweiterung bereits mit verwenden:

composer show | grep workspaces

Dies sollte Ihnen entweder kein Ergebnis oder etwas ähnliches liefern:

typo3/cms-workspaces v12.4.11

Wenn sie noch nicht installiert ist, verwenden Sie den Befehl composer require, um die Erweiterung zu installieren:

composer require typo3/cms-workspaces

Die angegebene Version hängt von der Version des TYPO3 Core ab, die Sie verwenden

Arbeitsbereiche

Arbeitsbereiche sind die Benutzeroberfläche, die auf dem Versionierungskonzept aufbaut, um den Benutzern die Verwaltung der Versionen zu erleichtern

Darüber hinaus ermöglichen es Arbeitsbereiche, eine Reihe von Stufen für die Validierung einer bestimmten Änderung zu erstellen und so einen vollständigen Überprüfungsprozess vor der Veröffentlichung zu gewährleisten

  • Die Benutzer aller Stufen können über Änderungen im Überprüfungsprozess benachrichtigt werden

Ein Arbeitsbereich ist ein Zustand im Backend von TYPO3 CMS

Grundsätzlich gibt es zwei Arten von Arbeitsbereichen:

  • LIVE-Arbeitsbereich: Dies ist genau der Zustand, in dem sich TYPO3 CMS immer befunden hat
  • Jede Änderung, die Sie vornehmen, wird sofort live sein
  • Es hat sich nichts geändert, er hat nur einen Namen bekommen

Der Zugriff auf den Live-Arbeitsbereich muss den Backend-Benutzern und -Gruppen explizit gewährt werden (auf der Registerkarte "Mounts und Arbeitsbereiche")

  • Benutzerdefinierte Arbeitsbereiche: Wenn Benutzer einen benutzerdefinierten Arbeitsbereich auswählen, gelten neue Regeln für alles, was sie im Backend tun:
    • Sicherheit: Jede Änderung, die sie vornehmen wollen, hat keine Auswirkungen auf die aktuelle Website
  • Es ist ein sicherer Spielplatz
    • Transparente Versionierung: Sie können Seiten und Elemente bearbeiten, da eine neue Version automatisch erstellt und an den Arbeitsbereich angehängt wird
  • Keine Schulung erforderlich, kein Verwaltungsaufwand!
    • Vorschau: Wenn Sie die Frontend-Website besuchen, wird sie so angezeigt, wie sie erscheinen wird, wenn alle Versionen im Arbeitsbereich schließlich veröffentlicht werden
    • Überblick über Änderungen: Das Modul Workspace Manager bietet einen klaren Überblick über alle Änderungen, die innerhalb des Arbeitsbereichs auf der gesamten Website vorgenommen wurden
  • Dies ermöglicht eine unvergleichliche Kontrolle, bevor der Inhalt live geschaltet wird
    • Einschränkungen: Nur Tabellen, die die Versionierung unterstützen, können bearbeitet werden
    • Flexibilität: Benutzerdefinierte Arbeitsbereiche können mit Eigentümern, Mitgliedern und Prüfern sowie Datenbankmounts und mehr konfiguriert werden
  • Ein benutzerdefinierter Arbeitsbereich kann somit einen gezielteren Bearbeitungsbereich bieten als Backend-Benutzer und -Gruppen
  • Und ein Überprüfungsverfahren, das je nach Bedarf einfach oder vollständig ist

Veröffentlichen und Austauschen

Es gibt zwei Möglichkeiten, ein Element in einem Arbeitsbereich zu veröffentlichen: veröffentlichen oder austauschen

  • In beiden Fällen wird der Entwurfsinhalt live veröffentlicht
  • Beim Swappen bedeutet dies jedoch, dass das aktuelle Live-Element an den Arbeitsbereich angehängt wird, wenn es offline genommen wird
  • Dies steht im Gegensatz zum Veröffentlichungsmodus, bei dem das Live-Element aus dem Arbeitsbereich heraus und "ins Archiv" verschoben wird

Der Auslagerungsmodus ist nützlich, wenn Sie eine zeitlich begrenzte Kampagne haben, etwa eine spezielle Weihnachtsseite und einen Website-Bereich

  • Sie erstellen die Weihnachtsausgabe in einem benutzerdefinierten Arbeitsbereich und zwei Wochen vor Weihnachten tauschen Sie die Weihnachtsausgabe aus
  • Alle normalen Seiten und Elemente, die nicht veröffentlicht wurden, befinden sich jetzt im Arbeitsbereich und warten darauf, dass Weihnachten vorbei ist und die alte Titelseite usw. wieder eingefügt wird
  • Die Weihnachtsausgabe ist nun wieder im Arbeitsbereich und bereit für das nächste Jahr

Erweiterungen und Workspaces

Arbeitsbereiche setzen eine transparente Unterstützung im gesamten Backend und Frontend voraus, und Erweiterungen müssen unter diesem Gesichtspunkt programmiert werden

  • Obwohl das Ideal eine vollständige Transparenz im Backend und eine perfekte Vorschau im Frontend ist, ist dies fast unmöglich zu erreichen
  • Nichtsdestotrotz kann ein hohes Maß an Konsistenz erreicht werden, indem die von TYPO3 CMS bereitgestellte API genutzt wird
  • Diese Funktionen und die Herausforderungen, die sie lösen sollen, werden in TYPO3 erklärt behandelt

Planer-Aufgaben

Die "workspaces"-Erweiterung bietet zwei Scheduler-Aufgaben

Automatische Veröffentlichung von Arbeitsbereichen
Diese Aufgabe prüft, ob ein Arbeitsbereich ein geplantes Veröffentlichungsdatum hat
  • Wenn ja und wenn dieses Datum überschritten ist, werden alle Änderungen, die das Stadium "Bereit zur Veröffentlichung" erreicht haben, im Live-Arbeitsbereich veröffentlicht.
Arbeitsbereiche bereinigen Vorschau-Links
Wenn Vorschau-Links erzeugt werden, werden sie in der Datenbank (in der Tabelle "sys_preview") gespeichert
  • Diese Aufgabe löscht jeden Link, der abgelaufen ist.


  1. https://docs.typo3.org/c/typo3/cms-workspaces/main/en-us/singlehtml/Index.html

Arbeitsbereich-Protokoll

Systemprotokoll
  • spiegelt die Vorgänge im Arbeitsbereich wider
  • In der Spalte "Benutzer" erscheint der Name des Arbeitsbereichs unterhalb des Benutzernamens
Protokoll der Workspaces-bezogenen Vorgänge
Workspaces and logging