2011-01-10 5 views
0

Hat jemand eine gute Möglichkeit, Stile im Admin-Bereich zu wechseln, nur um das Layout der Website zu ändern.Multi-Stil-Schalter

Lass uns sagen, ich habe 3 Stile und ich möchte das Aussehen der Website ändern, aber es im Admin-Bereich tun wollen, aber der Effekt muss sowohl auf Admin-und Benutzer-Ende passieren.

Ich möchte, dass der Administrator nur die Stile ändern kann und nicht der Endbenutzer, aber der Effekt wird sowohl im Adminbereich als auch im Benutzerbereich angezeigt.

Antwort

0

Sie könnten das Stylesheet so erstellen, dass Sie eine Variable einschließen, die Sie in der Datenbank speichern.

1

Der einfachste Weg wäre, alle stilabhängigen CSS-Regeln in eine einzige CSS-Datei zu übertragen, die Sie über PHP austauschen können.

Zum Beispiel, wenn Sie drei "Thema" Stile ("loud.css", "brash.css" und "happy.css"), auf jeder PHP-Seite am Frontend und Backend können Sie einfach ausgeben der HTML-Code, um basierend auf dem Inhalt einer Datenbankeinstellung einen einzelnen von ihnen einzuschließen.

0

Speichern Sie den Stylesheet-Wert in einer Datenbank und verwenden Sie ihn auf der Kopfseite rendern. Dann können Sie ein einfaches Admin-Tool schreiben, um seinen Wert zu ändern.

0

style.php

$avail_styles = array("green","red","blue"); 

if(isset($_REQUEST['style']) && in_array($_REQUEST['style'],$avail_styles)) 
{ 
    session_start(); 
    $_SESSION['style'] = $_REQUEST['style']; 
    echo "1"; exit; 
} 
echo "0"; //No Changes 

Javascript/jQuery

$("#style select").change(function(){ 
    val = $("option:selected",this).val(); 

    //Ping style.php 
    $.get("style.php",{style:val},function(resonce){ 
     if(response == "1") 
     { 
      //Load the new style sheet or document.location to refresh 
     } 
    }); 
}) 

index.php

<link rel="stylesheet" type="text/css" href="<?php echo $_SESSION["style" ]?>.css" /> 

sollten Sie in der Lage sein zu sehen, wie das funktioniert, aber wie im in einem großen Andrang so krank in der Lage sein, etwas später eine beschreibende Antwort hinzuzufügen, hoffe das hilft.