WebsiteBaker Community Forum

WebsiteBaker Support (2.12.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: evaki on October 31, 2018, 12:37:31 PM

Title: Templatewechsel im FE
Post by: evaki on October 31, 2018, 12:37:31 PM
Bräuchte ein paar Zeilen im FE, um einen Templatewechsel im FE herbeizuführen.
Hierbei ist es "egal", ob nun nur temporär oder bleibend umgeschaltet wird.
Die Leute sollen die Inhalte halt nur im unterschiedlichen Design angucken können.
Bei Aufruf eines nicht vorhandenen Templates soll halt nix passieren.
Es reicht ein Ansatz, den ich evtl. selber fortführen kann.
MfG. Evaki
Title: Re: Templatewechsel im FE
Post by: Gast on October 31, 2018, 01:36:22 PM
geht eigentlich nur über die index.php im Root, dort ein POST oder GET abfangen, prüfen, ob Template-Ordner und info.php existieren, wenn du auf Nummer sicher gehen willst, den Template-Namen auslesen und dann in der config.php die Konstante TEMPLATE setzen.

Will man nur eine Seite zeigen, würde es reichen, diese zu klonen und in den Einstellungen der Seite ein anderes Template zuzuweisen. Das erspart die Coderei, allerdings hat man nur eine Seite

auch schon gesehen, aber zu umständlich: unterschiedliche WB-Installationen mit unterschiedlichen Templates
Title: Re: Templatewechsel im FE
Post by: Luisehahne on October 31, 2018, 03:47:07 PM
weiss jetzt nicht, ob ich das richtig verstanden habe, Ein weiteres Template für eine bestimmte Seite oder Seiten lässt sich unter Seiten-Optionen einstellen.

Dietmar
Title: Re: Templatewechsel im FE
Post by: evaki on October 31, 2018, 04:57:30 PM
Nee  :-D
es geht tatsächlich nur um die Betrachtung des identischen Inhalts unter unterschiedlichen Layouts.
Nach dem Moddo: Wat willste haben, dat schöne Template oder dat, oder dat. also klick, klick, klick.

Hab' mal im Archiv gesucht, bin fündig geworden und habe es unter 2.12 ausprobiert.
(Ist einfach dringend für diese Woche)
root: index.php
zwischen $wb->page_select() or die(); und  $wb->get_page_details(); sieht's dann so aus:

Code: [Select]
// Stop processing if intro page was shown
$wb->page_select() or die();

 // Collect info about the currently viewed page
    // and check permissions
    // Sticky Template switcher
    if ($_GET['template']!="") {  // get the template to display from URL
       if(file_exists(WB_PATH.'/templates/'.$_GET['template'].'/index.php')) {
          define('TEMPLATE',$_GET['template']);
          $_SESSION['TEMPLATE']=TEMPLATE;
        }
    } else {   // else get the template to display from Session Variable
        if(isset($_SESSION['TEMPLATE']) AND $_SESSION['TEMPLATE'] != '')
            define('TEMPLATE',$_SESSION['TEMPLATE']);
    }

// Collect info about the currently viewed page
// and check permissions
$wb->get_page_details();

In die zur Ansicht gewünschten Templates -eben nur in die- dann z.B. direkt hinter body das 'form' eintragen:
</head>
<body>
Code: [Select]
<form name="myform" method="get" action="">
  <select name="template" onchange="javascript: document.myform.submit();">
      <option value="">Templateauswahl</option>
    <option value="round">The nice Round template</option>
    <option value="allcss">Only using CSS</option>
  </select>
</form>

Das klappt ganz prima, insbesondere mit der Session.

MfG. Evaki
p.s. Vielleicht wäre das ja mal was für'n festen Einbau, denn für Präsentationszwecke wird sowas andauernd gebraucht. Vielleicht so wie der Wartungsmodus: An/Aus
Title: Re: Templatewechsel im FE
Post by: johnbroeckaert on October 31, 2018, 05:46:13 PM
Der lösing von @ruud ist vielleicht auch eine moglichkeit:
https://wbhelp.org/tips-and-tricks/2017/testing-your-new-template-on-a-live-website/
Title: Re: Templatewechsel im FE
Post by: evaki on October 31, 2018, 05:51:12 PM
Ist genau das  :-D   plus Form
Ruud hat noch eine Sicherheitsabfrage drin !!!
Wer die Option nutzen möchte, sollte mit "isset" arbeiten. (wg. $_GET)
Title: Re: Templatewechsel im FE
Post by: evaki on October 31, 2018, 06:12:59 PM
Das Zeitlimit macht Laune

Soeben noch etwas im Archiv (Februar 2011) gefunden:
Der php-Code ist hier mit "isset" -geschenkt.
Aber das Form ist ein anderes:
Code: [Select]
<script type="text/javascript">
var vers = navigator.appVersion;
var name = navigator.appName;
vers_ie = vers.substring(22,23);
vers_nc = vers.substring(0,1);
if ((name == "Microsoft Internet Explorer" && vers_ie == 5) || (name == "Netscape" && vers_nc == 5)){
function auswahl(link) {
 if(link == "leer") {
   document.forms[0].reset();
  document.forms[0].elements[0].blur();
   return;
 }else {
   location.href = link;
   document.forms[0].reset();
   document.forms[0].elements[0].blur();
  }
 }
}</script>
<form action="">
<div align="center">
<select size=1 name="Auswahl" onChange="auswahl(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)"
style="width:300px; background-color:#FFFFFF; font-size:16; font-weight:normal; font-family:verdana; Color:#003399;" width="300" class="countriesform">
<option value="" selected>Design auswählen</option>
<option value="<?php echo WB_URL.PAGES_DIRECTORY;?>/switcher.php?template=allcss">allcss</option>
<option value="<?php echo WB_URL.PAGES_DIRECTORY;?>/switcher.php?template=round">round</option>
<option value="<?php echo WB_URL.PAGES_DIRECTORY;?>/switcher.php?template=artificial_intelligence">artificial_intelligence</option>
<option value="<?php echo WB_URL.PAGES_DIRECTORY;?>/switcher.php?template=allcss">allcss</option>
</select>
</div>
</form> 

Ich habe es nicht ausprobiert. Wer mag, kanns ja mal testen, ob's 'ne sinnvolle Variante ist oder ob das nur ein Versuch im Sandkasten war -also Schrott.
Angeblich gabs in wb2.83 Hinweise auf Störungen in den Optionen (so im Archiv, nix genaues weiß man nicht, und auf weitere Untersuchungen muß ich leider verzichten)
Ich bastel jetzt nicht mehr daran rum. Das aktuelle Script soll für mich nur diese Woche störungsfrei laufen, und gut is.

MfG. Evaki