Seiten automatisch online / offline schalten

Nutzbar ab: Version

Über die Dateivorlage entscheiden Sie, ob ein Dokument automatisch nach dem Erstellen online geschaltet wird.

In älteren Projekten mußte man sich entscheiden, ob man Vorlagen online oder offline stellen wollte. Meist hatten Vorlagen den Online-Status off, um zu verhindern, dass eine Seite vor der ersten Bearbeitung bereits online ist. Somit lag es am Redakteur, eine Arbeitskopie vor der Veröffentlichung online zu schalten.

Onlinestatus über Templateinformationen beeinflussen

Die Templateinformationen eines aktuellen BASE Projektes ermöglichen es, zu einer erstmal offline gesetzten Vorlage zu definieren, daß diese direkt beim Öffnen der Bearbeitung die Arbeitskopie online setzt.

Datei-Eigenschaften - Auszug aus Templateinformationen
Datei-Eigenschaften - Auszug aus Templateinformationen

Über die Option "Beim Bearbeiten online schalten" können Sie die Vorlagen offline belassen und der Redakteur muss diese nicht extra online schalten, da der Editor beim ersten Öffnen den Status auf online setzt. Somit ist die Arbeitskopie bereits mit online-Status versehen, die bereits angelegte Original-Datei aber noch offline gesetzt. Erst nach dem Speichern wird der online-Status der Arbeitskopie auch in die Original-Datei übernommen.

In vielen Fällen ist dies die komfortabelste Art, neue Seiten, Meldungen und Artikel zu veröffentlichen. Diese Option wirkt sowohl bei sofort zu veröffentlichenden Seiten, als auch bei Seiten, die erst nach der Freigabe über einen Workflow veröffentlicht werden.

Kopierte Dateien beim Einfügen offline setzen

Wollen Sie beim Einfügen kopierter Datei erwirken, daß diese eingefügte Datei erstmal offline gesetzt ist, können Sie dies über ein Projektereignis bzw. Verzeichnisereignis umsetzen.

Wenn es für das gesamte Projekt gelten soll, setzen Sie dies am besten zu Ihrem Inhaltsprojekt (z.B. /de) über die Projektereignisse zum Ereignis onAfterCopyFile.

Projektereignis onAfterCopyFile zum Inhaltsprojekt mit setStatusOnline-Funktion

$document = new wDocument($eventData['fileNewPath']);
$document->setStatusOnline('off', array('fireEvents' => false));

In aktuellen CMS-Versionen ist diese Aktion übrigens als Snippet auswählbar ("Datei nach dem Kopieren offline schalten").

Onlinestatus bei öffentlichen Benutzern setzen

Für öffentliche Benutzer, welche die Berechtigung zum Erstellen und Bearbeiten von Inhalten haben, sind die BASE Projekte so umgesetzt, daß beim Speichern einer Seite der Onlinestatus immer direkt auf online gesetzt wird.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/editmasks/standard.metadata.php

        <!-- Falls ein öffentlicher Benutzer eine Objekt bearbeitet, wird dieses beim Speichern immer online gesetzt, ohne dass der öffentliche Benutzer die Auswahl sieht-->
        <!--web:text:start inputStyle="display:none" editor="select" values="on" --><xsl:value-of select="/wd:document/wd:extension/wd:status/wd:online/@status"/><!--web:text:stop-->