Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Anderes Template für den Admin

    demoncleaner

    • Fördermitglied
    • Beiträge: 325
    Anderes Template für den Admin
    am: 23. März 2015, 22:10:47
    Weil ich es für die einen Shop den man nicht offline entwickeln kann oder will, oder weil die Änderung so gering ist, dass sich der Aufwand nicht lohnt das ganze lokal zu machen, sehr praktisch fände, würde ich gerne, wenn ich als Admin eingeloggt bin, ein anderes Template als der Rest sehen. Geht das? Wo müsste ich die Current_Template variable abgreifen und eine entsprechende if-Abfrage dazwischen hängen.

    Hat jemand ne Ahnung oder stelle ich mir das gerade zu einfach vor? Wäre doch eigentlich ganz praktisch, oder?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=32572.0
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Anderes Template für den Admin
    Antwort #1 am: 23. März 2015, 22:48:13
    Glaube nicht, daß das geht. Sonst wäre es ja möglich jeder Kundengruppe ein eigenes Template zuzuweisen. Das template wird ja in der Konfiguration "Mein Shop" global für alle zugewiesen.

    awids

    • Experte
    • Beiträge: 2.677
    • Geschlecht:
    Re: Anderes Template für den Admin
    Antwort #2 am: 24. März 2015, 00:36:43
    Das ist grundsätzlich ohne weiteres möglich.

    Hier stelle ich mal eine manuelle Lösung dafür vor:

    Zunächst sollte das alternative Template im Template-Ordner liegen, damit man es ansprechen kann.

    Anschließend bearbeitet man die /includes/application_top.php wie folgt:

    Suche nach:
    Code: PHP  [Auswählen]
    while ($configuration = xtc_db_fetch_array($configuration_query)) {
      define($configuration['cfgKey'], $configuration['cfgValue']);
    }

    Ersetze mit:
    Code: PHP  [Auswählen]
    while ($configuration = xtc_db_fetch_array($configuration_query)) {
      if($configuration['cfgKey']=="CURRENT_TEMPLATE") {
        $template = $configuration['cfgValue'];
      } else {
        define($configuration['cfgKey'],
        $configuration['cfgValue']);
      }
    }

    Suche nach:
    Code: PHP  [Auswählen]
        $truncate_session_id = false;

    Füge davor ein:
    Code: PHP  [Auswählen]
    if(isset($_GET["tpl"])) {
      $_SESSION["tpl"] = $_GET["tpl"];
    }
    if(isset($_SESSION["tpl"]) && file_exists(DIR_FS_CATALOG."templates/".$_SESSION["tpl"])) {
      define("CURRENT_TEMPLATE", $_SESSION["tpl"]);
    } else {
      define("CURRENT_TEMPLATE", $template);
    }

    Man könnte die Anpassung noch um einen Dropdown-Template-Switcher erweitern, aber aus deinem Post geht hervor, dass du das Template allein für die Bearbeitung (im Livebetrieb) anzeigen lassen willst.


    Nun ist es möglich, neben dem gewählten Standardtemplate auch das alternative Template im Browser zu laden, indem man den tpl-Parameter an die URL anhängt.

    Beispiel:
    www.deine-domain.de/index.php?tpl=name-deines-templates

    Leg einen Shortcut im Browser an und du kannst das Template unabhängig vom Login-Status anzeigen lassen. Gegebenenfalls auch einen Shortcut zum aktuellen Standardtemplate.

    Vielleicht reicht dir das ja als Lösung. :-)

    awids

    • Experte
    • Beiträge: 2.677
    • Geschlecht:
    Re: Anderes Template für den Admin
    Antwort #3 am: 24. März 2015, 14:05:11
    Nachdem ich eine Nacht darüber geschlafen habe, kam ich auf die Idee, dass man den Template-Switcher ja trotzdem einbauen kann, diesen aber nur für den Admin zugänglich macht.

    Und zwar setzen wir hier wieder an die Codeanpassungen aus o. g. Quelle an und bearbeiten folgende Dateien:

    /includes/header.php

    Suche:
    Code: PHP  [Auswählen]
        $smarty->assign('store_name', htmlspecialchars(TITLE));

    Füge danach ein:
    Code: PHP  [Auswählen]
    $handle = opendir(DIR_FS_CATALOG."templates/");
    $t_array = array();
    while (false !== ($file = readdir($handle))) {
      if(!preg_match("/^\./", $file)) {
        $t_array[] = $file;
      }
    }
    sort($t_array);
    for($i=0;$i<sizeof($t_array);$i++) {
      $tpls[] = array("id" => $t_array[$i], 'text' => $t_array[$i]);
    }
    $parameters = xtc_get_all_get_params(array ('tpl', 'x', 'y'));
    parse_str(urldecode($parameters), $para);
    $hidden = "";
    for(reset($para); $k = key($para); next($para)) {
      $hidden .= sprintf("<input type='hidden' name='%s' value='%s' />", $k, $para[$k]);
    }
    $t_select = xtc_draw_pull_down_menu('tpl', $tpls, CURRENT_TEMPLATE, 'onchange=this.form.submit()');
    $smarty->assign('TEMPLATE_SWITCHER', sprintf("%s%s <noscript>%s</noscript>%s</form>", xtc_draw_form('template-switcher', $PHP_SELF, 'get'), $t_select, xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE), $hidden));

    /templates/DEIN-STANDARDTEMPLATE/index.html (nur für Admin) sowie
    /templates/DEIN-ALTERNATIVTEMPLATE/index.html (nur für Admin)

    An gewünschter/geeigneter Stelle einfügen:
    Code: PHP  [Auswählen]
    {if $smarty.session.customers_status.customers_status_id == '0'}{$TEMPLATE_SWITCHER}{/if}

    demoncleaner

    • Fördermitglied
    • Beiträge: 325
    Re: Anderes Template für den Admin
    Antwort #4 am: 25. März 2015, 15:59:24
    Wow. Vielen Dank. Werde das demnächst einbauen und dann mal berichten. Denke schon dass das ziemlich praktisch ist.

    awids

    • Experte
    • Beiträge: 2.677
    • Geschlecht:
    Re: Anderes Template für den Admin
    Antwort #5 am: 25. März 2015, 21:22:08
    Nichts zu danken. Habe ja nur einen vorhandenen Post wiederaufgegriffen und den Schlussteil entsprechend deiner Anfrage darum erweitert, dass nur Admins diese Modifikation haben. Du kannst nach dem Einbau ja mitteilen, ob es deinen Ansprüchen genügt und den Thread dann als gelöst markieren.

    demoncleaner

    • Fördermitglied
    • Beiträge: 325
    Re: Anderes Template für den Admin
    Antwort #6 am: 06. Mai 2015, 10:36:33
    Hat 1a geklappt. Besten Dank noch mal.

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Anderes Template für den Admin
    Antwort #7 am: 17. Mai 2015, 22:45:59
    Kriegt man den Code auch irgendwie in eine Box?
    Code: PHP  [Auswählen]
        $handle = opendir(DIR_FS_CATALOG."templates/");
        $t_array = array();
        while (false !== ($file = readdir($handle))) {
          if(!preg_match("/^\./", $file)) {
            $t_array[] = $file;
          }
        }
        sort($t_array);
        for($i=0;$i<sizeof($t_array);$i++) {
          $tpls[] = array("id" => $t_array[$i], 'text' => $t_array[$i]);
        }
        $parameters = xtc_get_all_get_params(array ('tpl', 'x', 'y'));
        parse_str(urldecode($parameters), $para);
        $hidden = "";
        for(reset($para); $k = key($para); next($para)) {
          $hidden .= sprintf("<input type='hidden' name='%s' value='%s' />", $k, $para[$k]);
        }
        $t_select = xtc_draw_pull_down_menu('tpl', $tpls, CURRENT_TEMPLATE, 'onchange=this.form.submit()');
        $smarty->assign('TEMPLATE_SWITCHER', sprintf("%s%s <noscript>%s</noscript>%s</form>", xtc_draw_form('template-switcher', $PHP_SELF, 'get'), $t_select, xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE), $hidden));

    dannyjung

    • Frisch an Board
    • Beiträge: 74
    Re: Anderes Template für den Admin
    Antwort #8 am: 14. Januar 2020, 16:37:56
    hm...die application_top hat sich in der Version 2.0.5.0 geändert .....
    Ist das trotzdem machbar mit dem aufruf index.php?=tpl.....
    Ich finde das ganz praktisch um sein "Outfit" anzupassen - geht aber leider jetzt nicht mehr... ???
    8 Antworten
    2682 Aufrufe
    20. August 2010, 10:27:04 von Tomcraft
    21 Antworten
    6160 Aufrufe
    22. November 2010, 10:18:51 von Sick
    2 Antworten
    1100 Aufrufe
    07. Juni 2016, 08:28:37 von hwk
    1 Antworten
    1596 Aufrufe
    23. März 2018, 07:57:15 von webald