Weitere Artikel aus dem Webentwickler Blog

In diesem Beitrag geht es um die Workspaces im Backend von TYPO3. Im Backend muss für praktisch jeden Datensatz eine Overlay-Variante erzeugt werden, damit der User auch wirklich seinen Workspace so sieht,  wie er nach der Veröffentlichung aussieht. Dazu gehört auch die Korrektur der Pid-Werte für Offline- und Online-Daten.

Für das Backend gibt es deutlich mehr API-Funktionen, weil hier auch Aktionen wie das Veröffentlichen von Datensätzen erfolgen. Wenn ein Modul Ihrer Extension nicht in allen Workspaces zugänglich sein soll, können Sie diese in der Datei conf.php mit einem Eintrag der Form $MCONF['workspaces'] = online,offline,custom einstellen. Auf Ebene des Funktionsmenüs lässt sich dies durch einen zusätzlichen Parameter für die Funktion t3lib_extMgm::insertModuleFunction() einstellen. Die Eigenschaft $GLOBALS['BE_USER']->workspace enthält den aktuellen Workspace des Backend-Users. Handelt es sich um einen Custom Workspace, so finden sich die weiteren Daten in $GLOBALS['BE_USER']->workspaceRec. Die Werte für die einzelnen Arbeitsumgebungen sind:
  • 0 = online (Live)
  • -1 = offline (Entwurf)
  • > 0 = custom (Projekt)
  • -99 = kein Workspace gewählt. Das ist ein Fehlerzustand!

Im Normalfall kann auch ein Admin-User von einem Offline-Workspace aus keinen Live-Datensatz speichern. In manchen Fällen ist das aber unumgänglich, beispielsweise wenn ein User sein eigenes Profil ändert, das nur im Live-Workspace existiert. Für Ihre Extension können Sie ein solches Verhalten über die Eigenschaft t3lib_tcemain::bypassWorkspaceRestrictions=true erlauben.

Verschieben von Inhalten in Arbeitsumgebungen

Seit TYPO3 4.2 ist in Workspace-Umgebungen das Verschieben von Inhalten auf Element-Ebene (anstatt auf Seiten- oder Zweig-Ebene) möglich und auch die empfohlene Methode. Das bedeutet in der Praxis, dass beispielsweise im Live-Workspace ein Seiteninhalt auf der Homepage erscheint, während in der Draft-Version der Inhalt auf eine Unterseite verschoben wurde.

Dies wird durch sogenannte Platzhalter ermöglicht. Auf der neuen Seite wird ein Datensatz mit t3ver_state=3 angelegt, sowie einem Feld t3ver_move_id, das die uid des Datensatzes enthält, der beim Veröffentlichen hier eingesetzt werden soll. Um die Funktion des Veröffentlichungssystems zu gewährleisten, wird außerdem auf der Quellseite eine neue Version des Datensatzes mit t3ver_state=4 (move-to pointer) erzeugt. Dies ist der Eintrag, der später tatsächlich verschoben wird.

Die im TYPO3 4.2 enthaltenen Versionen von t3lib_page::versionOL() und t3lib_BEfunc::workspaceOL() unterstützen dieses System, sodass auch in einer solchen Konstellation die Preview-Funktion des Frontends korrekt funktioniert.

Dieser Text ist dem Buch “Extensions für TYPO3” von Robert Steindl entnommen, das im Franzis-Verlag erschienen ist. Das Buch ist hier direkt bestellbar.


Kundenkommentare
Social Bookmarks
elo-web bookmarken bei: Mr. Wong elo-web bookmarken bei: Webnews elo-web bookmarken bei: Icio elo-web bookmarken bei: Oneview elo-web bookmarken bei: Yigg elo-web bookmarken bei: Linkarena elo-web bookmarken bei: Digg elo-web bookmarken bei: Reddit elo-web bookmarken bei: Simpy elo-web bookmarken bei: StumbleUpon elo-web bookmarken bei: Netscape elo-web bookmarken bei: Furl elo-web bookmarken bei: Yahoo elo-web bookmarken bei: Blogmarks elo-web bookmarken bei: Diigo elo-web bookmarken bei: Technorati elo-web bookmarken bei: Newsvine elo-web bookmarken bei: Blinkbits elo-web bookmarken bei: Ma.Gnolia elo-web bookmarken bei: Smarking elo-web bookmarken bei: Netvouz elo-web bookmarken bei: Folkd elo-web bookmarken bei: Spurl elo-web bookmarken bei: Google elo-web bookmarken bei: Blinklist
URL zu dieser Seite
Einfach den Quelltext kopieren und auf Ihrer Webseite einbinden

Kontakt
Newsletter | Kontakt | RSS Feed
Warenkorb: 0 Artikel
Gesamtwert: EUR 0,00
Home TYPO3  Workspaces in TYPO3 - Teil II