Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 28. Oktober 2014 16:47

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Admin sieht ein anderes Frontend

Hallo zusammen,

der Titel ist sicher verwirrend, aber mir fiel nichts besseres ein...  smile

Immer wieder stand ich vor dem Problem eines Relaunch und hab hin- und her überlegt, wie ich das am Besten umsetzen kann. Meistens waren die Systeme ohnehin schon einige Monate, wenn nicht gar Jahre alt - oder gar nicht CMSMS, sondern was anderes - so hab ich guten Gewissens auf ww2.example.de neu installiert und einfach alles frisch aufgesetzt.
Wenn alles fertig und fehlerfrei — switch auf dem Server von ww2 auf www, ggf. noch die config anpassen und fertig.

Nun habe ich eine wirklich junge Installation eines Kollegen vor mir, die ich lediglich updaten soll.
Der Kunde fummelt dual auch noch im Content umher, so dass ich nie sicher sagen könnte, ob mein neues Template gerade online ist oder nicht, oder ob er gerade mit Inhaltsupdates was zerschießt (ein etwas älterer Kunde, das...).

Deswegen würde ich gerne, am liebsten via Cookie oder URL-get das andere Template nur Einzel-Fallweise anfordern um die Fehler auszumerzen.
Quasi in der Form von: example.de/normale-seite.html?template=new

War das schon je ein Thema? Hätte das je ein Mensch gewollt?
Ich denke halt, dass ich so alle Seiten komplett auf Fehler durchtesten kann und dann erst allen Seiten das neue Template zuweisen kann - ohne großes Risiko oder Differenzen beim Ausgabe-Code.

Offline

#2 28. Oktober 2014 22:50

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.935
Webseite

Re: Admin sieht ein anderes Frontend

Du könntest dies mit Includes lösen:

{content assign="inhalt"}
{title assign="titel"}
<html>
<head>
{....}
{/head>
<body>
{if $smarty.get.newTemplate}
{include file="/pfad/zur/template/datei.html"}
{else}
{include file="/pfad/zum/normalen/template.html"}
{/if}
</body>
</html>

In den jeweiligen Templates kannst du die Smarty-Variablen {$inhalt} und {$titel} für den Inhalt nutzen.
Das ganze ist ungetestet und ein Proof-of-Concept. Ich habe den Include-Befehl jedoch auch schon für Wartungsmeldungen genutzt. Deshalb müsste es so funktionieren.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 29. Oktober 2014 09:30

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Re: Admin sieht ein anderes Frontend

Huh.
Ich glaub, ich bastel das besser mal auf meinem Test-System bevor ich das auf der Live-Seite ausprobiere...  big_smile

Aber jetzt mal ganz, ganz anders gedacht (die Idee kommt mir gerade jetzt eben):
Wenn ich ein neues Template anlege und allen Seiten zuweise,
in diesem Template (jetzt nur mal ganz rudimentär) schreibe:

[== Smarty / Template ==]
{if $admin.login == true}
  {NeuesTemplate}
{else}
  {AltesTemplate}
{/if}

Müsste das doch technisch gehen ... vielleicht?
Dafür müsste ich nur die Variablen kennen für den eingeloggten Admin, oder eine extra zufügen, wie GET-Parameter oder so.

Weil, es geht ja nicht alleine nur um die HTML-Struktur, sondern auch um das CSS.
Der Kollege hat eines der älteren Standard-Templates variiert, allerdings (in meinen Augen) nicht zum Guten. Jedes einzelne div innerhalb hat eine Pixel-genaue Breitenangabe, zum Teil kommen Hintergrundfarben irgendwoher, und ich kann sie im CSS nirgendwo finden und im Firebug weder in dem Element noch in einem der Elternelemente finden, etc.
Deswegen würde ich das Layout eben so belassen, damit der Kunde happy ist, aber das komplette Ding W3C-Konform stricken. Nur allein mit Firebug kann ich zwar ja einiges vorab anschauen, aber nicht mit anderen Browsern querprüfen. Momentan sieht die Seite mit jedem Agent ein wenig anders aus.

Offline

#4 29. Oktober 2014 09:55

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Admin sieht ein anderes Frontend

Den login-Status des Backendusers kannst Du im Template so abfragen:

{if get_userid(false)}

    logged in

{else}

    not logged in

{/if}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline