*gelöst* Layout Switch

Foren-Übersicht -> Individuelle Erweiterungen
Neues Thema eröffnen   Neue Antwort erstellen   

29.04.2008, 14:55
Hallo,
ich habe mir einen Layout Switch geschrieben da ich in der Entwicklungsphase immer zwischen dem Orangen und meinem neuen Layout hin und her springen muss. Damit kann man zwar nicht als Kunde zwischen zwei Layouts wählen aber man kann wenigstens per Link umschlaten.

Ich denke das es noch andere hier interessieren dürfte deshalb stelle ich den Code einfach mal ein. Keine Ahnung ob das hier die richtige Kategorie ist oder nicht falls nicht könnt Ihr Administratoren den Eintrag ja verschieben Smile.

Zur Benuzung:
Man muss in der _config/account_cfg.inc.php alle Themes nach der Zeile 63 (version 3.2.1) eintragen die man haben will (alle bis auf eins auskommentieren) z.B.
Code:

//define("THEME","own");
//define("THEME","orange");
//define("THEME","fwp1");
define("THEME","fwp2");
//define("THEME","seo");

Dann speichern und hochladen ... lol ist ja logisch.

Dannach müssen noch die Benuzerrechte/ Properties, oder wie die auch heißen, geändert werden. Die Datei braucht bei Public schreibrechte (644).

Dann eine Neue Datei anlegen und diese mit folgendem Code Füllen:
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="generator" content="www.nilsmichaelis.de" />
   <title>Layoutschalter</title>
</head>

   <body>
      <?php
         $layout = $_GET["layout"];          
         $inhalt = file_get_contents("account_cfg.inc.php");         
         
         /*erzeugt die Links um die Layouts auszuwählen*/
         $themes = explode("define(\"THEME\",\"", $inhalt);         
         for($i=1; $i< count($themes); $i++){            
            if (strpos($themes[$i], "\");//"))   $themes[$i] = substr($themes[$i], 0, strpos($themes[$i], "\");//"));
            else                        $themes[$i] = substr($themes[$i], 0, strpos($themes[$i], "\");"));            
            echo("<a href=\"schalter.php?layout=".$themes[$i]."\">".$themes[$i]."</a><br>");            
         }      
         
         
         /*Alle THEMES Auskommentieren aktives theme aktivieren */      
         $positionen = array();
         for($i=1; $i< count($themes); $i++){            
            $position = strpos($inhalt, "define(\"THEME\"", $position + 1);
            $positionen[$i] = $position;
            
            if(substr($inhalt,$position-2,2)!="//"){
               $inhalt = substr($inhalt,0,$position)."//".substr($inhalt,$position, strlen($inhalt)-$position+2);   
            }         
         }
         if($position = strpos($inhalt, "//define(\"THEME\",\"$layout\");")){
            $inhalt = substr($inhalt,0,$position).substr($inhalt,$position+2,strlen($inhalt)-$position);               
         }
         
         //Falls der Inhalt der Datei account_cfg.inc.php nicht angezeigt werden soll muss diese Zeile gelöscht werden
         echo("<br><br><br><br><br><br> Inhalt der Datei account_cfg.inc.php <br><br><br><br> <pre>".htmlspecialchars($inhalt)."</pre>");
         file_put_contents("account_cfg.inc.php", $inhalt);
         
         
         /*echo("<br><br><br>");
         print_r($positionen);         
         echo("<br><br><br>".$inhalt."<br><br><br>");
      
      
         $fp = fopen('account_cfg.inc.php', 'w');
         fwrite($fp, "hier steht anderer text <br>//define(\"THEME\",\"el_caballo\");<br>define(\"THEME\",\"orange\");<br>//define(\"THEME\",\"fwp1\");<br>und so weiter");
         fclose ( $fp);*/
         
         //$inhalt = file_get_contents("account_cfg.inc.php");
         //echo("<pre>".$inhalt."</pre>");   
      ?>
      <p>
      
      </p>
   </body>

</html>

die Datei muss unter _config/schalter.php abgespeichert werden (Name ist egal könnte auch switcher.php sein oder so).
Im Shop kann der Layoutschalter unter url/_config/schalter.php? aufgerufen werden und das Layout wird mit den Links am Kopf der Seite geändert.

Ihr könnt natürlich den Code belibig ändern nur wenn etwas kaputt geht habe ich natürlich nichts damit zu tun Wink (bei mir geht es aber unter der Version 3.2.1 und es sollte keine Probleme machen).

Viele Grüße und Schnelles Switchen
Noppf
PS. falls jemand ein schönes Stylesheet macht wäre ich auch dankbar Smile


_________________
1. RESPEKT and die Entwickler!!!!!!! Sehr sehr gut Realisiert!!!!
2. Sorry für meine Rechtschreibung Wink

Sebastian Feindt: BeitragAW: Layout Switch
29.04.2008, 15:01
Hi,

es geht auch einfacher Wink


_config/account_cfg.inc.php

if (isset($_GET['sTheme']))
$_SESSION['sTheme'] = $_GET['sTheme'];
if (!isset($_SESSION['sTheme']))
define("THEME","fwp1");
else
define("THEME", $_SESSION['sTheme']);


Durch das hinzufügen des Parameters sTheme=orange an die URL kannst Du das Template wechseln Wink

viele Grüße
Sebastian


_________________
Viele Grüße,
Sebastian

FWP Systems GmbH
Website dieses Benutzers besuchen

29.04.2008, 15:37
HAHAHAHA

na dann hat sich das wohl erledigt Smile!!!
Das letzte mal als ich geschaut hatte gab es das noch nicht und da habe ich gedacht da muss man sich das wohl selbst machen ..... na ja dann sehe ich es mal Positiv und habe wieder was gelernt Rolling Eyes

Danke für die Alternative Methode.
Viele Grüße Noppf


_________________
1. RESPEKT and die Entwickler!!!!!!! Sehr sehr gut Realisiert!!!!
2. Sorry für meine Rechtschreibung Wink

Sebastian Feindt: BeitragAW: Layout Switch
29.04.2008, 15:43
Wir werden mittelfristig (Version 3.5) einen Theme-Switch implementieren.


_________________
Viele Grüße,
Sebastian

FWP Systems GmbH
Website dieses Benutzers besuchen

Foren-Übersicht -> Individuelle Erweiterungen

Seite 1 von 1

Neues Thema eröffnen   Neue Antwort erstellen   

Ähnliche Beiträge zu *gelöst* Layout Switch

Beitrag Forum Antworten
Nach der Installation! Nur die Startseite und kein Layout
(Erstellt von Felix am 10.10.2008, 10:01)
Installation und Einrichtung 9
*gelöst* Guten Tag Forum
(Erstellt von Jan Guitar am 08.10.2008, 23:03)
Installation und Einrichtung 1
*gelöst [3.3.2] * e-mail bei 1und1 ?
(Erstellt von jorgeluislay am 06.10.2008, 18:39)
Installation und Einrichtung 13
Layout anpassen
(Erstellt von trade_goods am 06.10.2008, 13:08)
Design-Anpassungen 8
*gelöst* Installation unter Apache Fehler beim Systemcheck
(Erstellt von geysir am 04.10.2008, 19:54)
Installation und Einrichtung 1