WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 06.08.2016 11:13:25

stefanek
Developer

Einfacher Template-Switcher

Einfacher Template-Switcher

Manchmal will man dem Kunden Änderungen am Template zeigen ohne dafür gleich eine Sandbox aufzusetzen. Oder ohne das Template über das Backend zu ändern, weil die Seite im Betrieb ist und man nicht will, dass Besucher das neue Template sehen, während man es mit dem Kunden bespricht (weil es noch nicht komplett ist oder weil es völlig anders sein will und "work-in-progress").

Aber man muss es sich anschauen und besprechen.

Dafür habe ich mir ein kleines Hack ausgedacht (weil ich es auch selbst grade gebraucht habe).

Folgendes in der framework/initialize.php

etwa nach dem Code bezüglich // get user language bei ca. Zeile 138
hinzufügen:

// simple template switcher
if (defined('TEMPLATE_SWITCHER') && TEMPLATE_SWITCHER == true) {
    if (isset($_GET['reset_template'])) {
        unset($_SESSION['wb_preview_tpl']);
    }
    if (isset($_SESSION['wb_preview_tpl']) && !file_exists(WB_PATH.'/templates/'.$_SESSION['wb_preview_tpl'].'/info.php')) {
        unset($_SESSION['wb_preview_tpl']);		
    }
    if (isset($_GET['template'])) {
		$core_preview_template = preg_replace("/(\.\.\/)/","", $_GET['template']);
        if (isset($_GET['template']) && is_string($core_preview_template) && file_exists(WB_PATH.'/templates/'.$core_preview_template.'/info.php')){
            $_SESSION['wb_preview_tpl'] = $core_preview_template;
			define('TEMPLATE', $_SESSION['wb_preview_tpl']);
        }    
    } elseif (isset($_SESSION['wb_preview_tpl'])) {
        if (is_string($_SESSION['wb_preview_tpl']) && file_exists(WB_PATH.'/templates/'.$_SESSION['wb_preview_tpl'].'/info.php')) {            
			define('TEMPLATE', $_SESSION['wb_preview_tpl']);
        }    
    }
	
}

Das war's dann auch schon von Seiten der "Programmierung".

Als erster in der config.php folgendes ergänzen:

define('TEMPLATE_SWITCHER', true);

Dann im Frontend der Seite füge in der Browserzeile hinter der gegenwärtigen Seitenadresse   
deine-seite.php?template=wbce

Ersetze "wbce" mit dem Ordnernamen des Templates das Du zur Vorschau verwenden willst.

Nun kannst Du alle Seiten mit diesem Template betrachten ohne im Backend irgendwelche Einstellungen vorgenommen zu haben.

Wenn Du jetzt wieder zum ursprünglichen Default-Template zurückkehren willst, musst Du in der Browserzeile einmal
deine-seite.php?reset_template
eingeben.

Das war's dann.

Deinem Kunden, falls ihr über's Telefon/Skype oder sonst wie remote arbeitest, schickst Du am besten Links mit den angehängten  ?template=your_template und ?reset_template.

Frohes Backen.

Chris

P.S. Ja, man könnte das auch noch mit einem Passwort oder so ergänzen, mit einem "custom secret string", wenn man will.
Dann einfach einen zusätzlichen GET parameter angeben.
Ich denke allerdings nicht, dass es not tut, da die Änderungen nur lokal, im eigenen Browser stattfinden.


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

Liked by:

thanks, jean

#2 06.08.2016 12:04:14

florian
Administrator

Re: Einfacher Template-Switcher

Cool, danke. Ich habs mal in die Neue-Snippets-Rubrik verschoben, da passt es besser hin.

Update:
Das Schnipsel ist auch mit WBCE 1.3.3 verwendbar, muss allerdings an anderer Position als oben angegeben in der initialize.php ergänzt werden, d.h. nach Zeile 412 bzw. dem Code

// Get users time format
if (isset($_SESSION['TIME_FORMAT'])) {
    define('TIME_FORMAT', $_SESSION['TIME_FORMAT']);
} else {
    define('TIME_FORMAT', DEFAULT_TIME_FORMAT);
}

Last edited by florian (29.12.2018 11:52:42)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

stefanek, thanks

#3 06.08.2016 12:12:35

stefanek
Developer

Re: Einfacher Template-Switcher

Cool. thumb_up
Ich wußte tatsächlich nicht, wo ich es am besten platzieren sollte.

Chris


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#4 06.08.2016 15:04:27

evaki
Guest

Re: Einfacher Template-Switcher

Was passiert, wenn das z.B. zwei oder drei Anwender gleichzeitig mit diversen Templates machen?
Stören die sich?
MfG. Evaki

#5 06.08.2016 15:19:43

stefanek
Developer

Re: Einfacher Template-Switcher

Nein.
Kein Problem.
Die  verwenden ja unterschiedliche Browser.
Versuch es selber mal in 2, 3, 4 unterschiedlichen Browsern parallel zu einander. Mit unterschiedlichen Templates.

Vergiss einfach nicht, nach der Show das Template zurückzusetzen mit ?reset_template am Ende der URL.

Chris

Last edited by stefanek (06.08.2016 15:21:48)


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#6 22.05.2019 08:14:39

Slugger
Member

Re: Einfacher Template-Switcher

Hübsches Gimmick  smile

Was muss man machen, damit die installierten Templates automatisch in die Auswahl geladen werden?

Derzeit sieht es bei mir so aus:

[== HTML ==]
<form><select onchange="location.href=this.options[this.selectedIndex].value"><option value="https://meineseite.de/pages/aktivitaeten.php?reset_template">Stylauswahl</option><option value="https://meineseite.de/pages/aktivitaeten.php?reset_template">Standard</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=outoftheblue">outoftheblue</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=lesefaken">lesefaken</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=wbce_hortal">wbce_hortal</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=wbce_vertal">wbce_vertal</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=simple_responsive">simple_responsive</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=html5up_editorial">html5up_editorial</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=buschwerk">buschwerk</option><option value="https://meineseite.de/pages/aktivitaeten.php?template=adventurestrap-light">adventurestrap-light</option></select></form>

Last edited by Slugger (23.05.2019 07:18:45)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#7 22.05.2019 08:57:54

florian
Administrator

Re: Einfacher Template-Switcher

im Anhang das Templateswitcher-Droplet von templates.wbce.org, das genau das macht.
Über Admintools > Droplets > Import importieren und ggf. Styling anpassen, dann im Template mit [[tsw]] aufrufen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#8 23.05.2019 16:00:35

Slugger
Member

Re: Einfacher Template-Switcher

Hallo florian,
habe das Droplet installiert.

Die Auswahl ist drin, jedoch nach der Auswahl eines Templates macht er nur ein Refresh und die Seite ändert sich nicht bzw. das Template wird nicht geladen..

Last edited by Slugger (23.05.2019 16:01:03)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#9 23.05.2019 16:07:59

florian
Administrator

Re: Einfacher Template-Switcher

Ändere mal in Zeile 21

switch_template 

in

template

Code allein macht nicht glücklich. Jetzt spenden!

Offline

#10 23.05.2019 20:13:07

Slugger
Member

Re: Einfacher Template-Switcher

Hallo,
passt jetzt  cool

Noch eine Frage, welcher CSS-Code wird benötigt damit die Auswahl und das Fenster nicht "weg wandert"?

Last edited by Slugger (23.05.2019 20:14:30)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#11 23.05.2019 20:35:13

florian
Administrator

Re: Einfacher Template-Switcher

?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#12 24.05.2019 06:45:36

florian
Administrator

Re: Einfacher Template-Switcher

Ach, ich glaube, ich verstehe, was Du meinst. Anbei ein abgewandeltes Droplet, da ist der Switcher nicht frei positionierbar, sondern erscheint dann da, wo er auf der Seite bzw. im Template aufgerufen wird.
Aufruf [[tswfix]]


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#13 25.05.2019 11:07:54

Slugger
Member

Re: Einfacher Template-Switcher

Beide Varianten finde ich gut  smile

Aber was ich meinte war, wenn man an größeren Mediengeräten die Webseite betrachtet und das Selektionsfenster zur Auswahl öfnnet, dann verschiebt sich dieser nach rechts. (Siehe Bild)

Bei kleineren Mediengeräten fällt das nicht auf bzw. kommt nicht zu Wirkung.

Last edited by Slugger (25.05.2019 11:08:53)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#14 25.05.2019 11:20:44

florian
Administrator

Re: Einfacher Template-Switcher

Passiert das nur bei dem frei schwebenden oder auch beim fest eingebauten Switcher?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#15 25.05.2019 11:30:12

Slugger
Member

Re: Einfacher Template-Switcher

Das passiert nur bei den frei schwebenden nicht bei dem fest eingebauten.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#16 25.05.2019 11:43:16

florian
Administrator

Re: Einfacher Template-Switcher

Ist der Aufruf des Droplets bzw. der daraus resultierende HTML-Code innerhalb von <body>...</body>?
Ich hatte auf templates.wbce.org auch dieses Darstellungsproblem, eben weil der Code ganz am Ende, also noch hinter </html>, gelandet war. Das habe ich auf der Seite dann dadurch gelöst, dass der Templateswitcher kein Droplet, sondern ein Outputfilter ist.
Outputfilter stehen allerdings erst in der kommenden WBCE-Version 1.4 zur Verfügung.
Insofern bleibt Dir wahrscheinlich erstmal nichts anderes übrig, als den fest positionierten Switcher zu verwenden.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#17 25.05.2019 11:47:20

Slugger
Member

Re: Einfacher Template-Switcher

Alles klar,
ich lasse mal beide als Erinnerung drin.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#18 25.05.2019 11:50:16

florian
Administrator

Re: Einfacher Template-Switcher

beide gleichzeitig würde ich auf keinen Fall verwenden. Das kann eigentlich nicht funktionieren.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#19 25.05.2019 11:52:16

Slugger
Member

Re: Einfacher Template-Switcher

Stimmt habe ich gerade eben getestet.

Wenn beide gleichzeitig aktiv sind, wirkt sich das auch auf den fest eingebauten aus.

Jetzt läuft nur noch der Fix.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#20 25.05.2019 16:31:44

Slugger
Member

Re: Einfacher Template-Switcher

florian wrote:

... Das habe ich auf der Seite dann dadurch gelöst, dass der Templateswitcher kein Droplet, sondern ein Outputfilter ist.
Outputfilter stehen allerdings erst in der kommenden WBCE-Version 1.4 zur Verfügung.

Wird dann in dieser Version auch die Möglichkeit bestehen, das man installierte Templates "verstecken" kann wenn man nicht möchte, dass man sie benutzt?

Last edited by Slugger (25.05.2019 16:32:34)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#21 25.05.2019 17:09:41

florian
Administrator

Re: Einfacher Template-Switcher

Das kannst Du auch so:
Ändere Zeile

 if ($n!=TEMPLATE) {

zu

        if ($d!='bluespace' && $d!='darkspace') {

bluespace und darkspace hier als Beispiele für das Verzeichnis der zu versteckenden Templates, weitere analog ergänzen, also && $d!='verzeichnis1' && $d!='verzeichnis2' usw.; ich gehe mal davon aus, dass Du nicht -zig Templates ausblenden willst (wenn das der Fall wäre, müsste man das anders machen).


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#22 25.05.2019 17:23:04

bernd
Developer

Re: Einfacher Template-Switcher

Grade wenn's mal bischen mehr wird bastle ich so Sachen immer gerne mit in_array:

$aDontDisplay = ['template1', 'template2', 'template3','undsoweiter'];
if (!in_array($d, $aDontDisplay)) {

Finde ich dann leichter lesbar als eine ellenlange !=&& Orgie  angel


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Online

Liked by:

florian

#23 25.05.2019 20:48:05

Slugger
Member

Re: Einfacher Template-Switcher

florian wrote:

Das kannst Du auch so:
Ändere Zeile

 if ($n!=TEMPLATE) {

zu

        if ($d!='bluespace' && $d!='darkspace') {

bluespace und darkspace hier als Beispiele für das Verzeichnis der zu versteckenden Templates, weitere analog ergänzen, also && $d!='verzeichnis1' && $d!='verzeichnis2' usw.; ich gehe mal davon aus, dass Du nicht -zig Templates ausblenden willst (wenn das der Fall wäre, müsste man das anders machen).

Ich sage es mal so ... Ich bin kein Programmierer und Designer im professionellen und Semi Bereich, aber beide könnten davon profitieren und ihren Clienten ein "leckerli" als easy going für Ihre Entscheidung zugeben.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#24 26.05.2019 09:43:49

florian
Administrator

Re: Einfacher Template-Switcher

Anbei der Templateswitcher als Snippet.
D.h. Dropletaufruf raus, Snippet über Erweiterungen > Module installieren, fertig.
(o.g. Core-Patch ist aber trotzdem erforderlich)

attachment.php?item=1735&download=1

Ach so, wenn Templates nicht zur Auswahl stehlen sollen, deren Verzeichnisnamen in Zeile 12 in der include.php eintragen.

Noch eine Anmerkung: Der Switcher setzt voraus, dass a) jquery vom Template geladen wird und b) keine JavaScript-Fehler die Ausführung von Scripten verhindern. Sonst funktioniert er nicht bzw. wird nicht angezeigt.

Last edited by florian (26.05.2019 09:49:50)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#25 26.05.2019 11:40:31

Slugger
Member

Re: Einfacher Template-Switcher

Super, das schaut gut aus, vielen Dank für die Umsetzung smile

florian wrote:

...
(o.g. Core-Patch ist aber trotzdem erforderlich)
...

Was ist damit gemeint, der TSWFIX als Droplet installiert lassen oder

[== PHP ==]
[== patch in framework/initialize.php ==]

den Code?

Welche Einstellung muss vorgenommen werden, damit der tsw eingeklappt ist, damit man ihn per click öffnet?

Last edited by Slugger (26.05.2019 12:16:47)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

Board footer

up