2017-07-05 3 views
3

Wir haben eine Reihe von Kunden, die verwirrt werden, wenn sie das Silverstripe CMS verwenden, und dann zeigt ihre Live-Website die Entwurfsversion an.Silverstripe-Website als Live-Version außerhalb von CMS einstellen

Wir haben "Better Navigator" eingerichtet, die anzeigt, ob sich eine Site in Draft oder Live befindet, aber die Clients immer noch verwirrt sind (und in einigen Ansichten ist die Better Navigator-Schaltfläche verdeckt).

Wenn die Live-Website außerhalb des CMS angezeigt wird, sollte sie idealerweise nur die "Live" -Version anzeigen.

Ist das möglich?

+1

Es könnte Vorschau-Funktion brechen, wenn Sie das tun - könnten Sie Ihre eigene „große rote wütend Symbolleiste“ an der Spitze des Layouts setzen Handwerk, wenn die Site nicht im Live-Modus ist? Passen Sie "Wut" an die Verwirrung Ihrer Kunden an? –

Antwort

7

Anstatt zu erzwingen, dass die Site immer die veröffentlichte Version anzeigt, können wir CSS nur im Entwurf hinzufügen, um dem Benutzer deutlich zu machen, dass er die Entwurfsversion anzeigt.

Erstellen Sie eine draft.css Datei, die den Site-Stil in der Entwurfsversion ändert. In diesem Beispiel ändere ich den Hintergrund des Tags body, um ein gekacheltes Bild mit den Worten "Draft" anzuzeigen.

mysite/css/draft.css

body { 
    background-image: url(../images/draft-background.png); 
} 

mysite/images/draft-background.png

draft background image

In unserer Page_Controllerinit Funktion laden wir die draft.css Datei wenn die aktuelle Stufe auf Stage eingestellt ist:

Page_Controller

class Page_Controller extends ContentController 
{ 

    public function init() 
    { 
     parent::init(); 

     // ... 
     if ($this->current_stage() == 'Stage') { 
      Requirements::css('mysite/css/draft.css'); 
     } 
    } 
    // ... 
} 

Das Endergebnis sieht wie folgt aus etwas:

Draft background example screenshot

Dies ist nur ein Beispiel für was wir mit dem Entwurf tun können, nur CSS. Alternativ können wir das Logo der Website ersetzen oder eine Warnleiste oben auf dem Seiteninhalt anzeigen.

Hier einige alternative CSS die oben draft-background.png vor allem die Inhalte anstelle eines Hintergrundbild des body Tag anzuzeigen:

body:after { 
    background-image: url(../images/draft-background.png); 
    content: ""; 
    position: fixed; 
    top: 0; 
    left: 0; 
    bottom: 0; 
    right: 0; 
    z-index: 1000; 
    pointer-events: none; 
    opacity: 0.25; 
} 

Hier sind einige CSS Beispiel eine Warnung Leiste am oberen Rand angezeigt werden von jede Seite:

body:after { 
    content: "You are currently viewing a draft version of this page"; 
    position: fixed; 
    top: 0; 
    left: 0; 
    right: 0; 
    z-index: 10000; 
    pointer-events: none; 
    opacity: 0.75; 
    text-align: center; 
    background: #F7CA18; 
    color: #000000; 
    padding: 20px; 
} 

body { 
    margin-top: 60px; 
} 
Verwandte Themen