Neu Child Template mit Theme updatesicher erstellen

AET

Aktives Mitglied
9. Januar 2018
63
6
Hallo zusammen,

ich glaube ich habe noch ein paar Verständnisprobleme bei der Template- bzw. Themes-Anpassung.

Ziel: Ich möchte mit dem Evo-Template mit Slate Thema eigene Anpassungen vornehmen. Als erstes z.B. einen Text auf der Startseite nach unten verschieben. Die Anleitungen dazu habe ich gefunden (denke ich), aber ich möchte das ganze Update fähig halten und habe dazu ein Child-Template erstellt.

Voraussetzungen:
Shop 4.06​
Evo Template mit Slate Theme​
Evo-Child Template mit dem Minimum-Template aus https://gitlab.com/falk.jtl/evo-child-vorlage/tree/master von Falk Prüfer angelegt (lässt sich auch aktivieren), jedoch noch nichts verändert.​

Probleme:
  • Wenn ich jetzt das Child Template aktiviere ist es leer und ich muss einfach alle Einstellungen die ich vorher im Evo gemacht habe wieder im Child einstellen. Die Vererbungen des Evo auf das Child gelten nicht für die Grundeinstellungen, richtig?
  • Das Thema Slate wird nicht angegeben, nur das my-evo. Soweit ich verstanden habe sollte ich jetzt im Child Template unter /Evo-Child/themes/base/less in den Dateien base.less und variables.less die Pfade anpassen. Dann sollte das Slate Thema laufen, richtig?
    • Also in der base.less - @import "../../../../Evo/themes/evo/less/theme"; - ändern zu @import "../../../../Evo/themes/slate/less/theme";.
    • Und in der variables.less - @import "../../../../Evo/themes/evo/less/variables"; - ändern zu @import "../../../../Evo/themes/slate/less/variables";.
  • Wenn ich dies habe muss ich laut meinem Verständnis kompilieren. Und dann sollte es laufen und ich kann die gewünschten Änderungen vornehmen. Also die zu ändernden Dateien kopieren, ändern und in den gleichen Child Verzeichnissen ablegen.

Ist das so richtig oder befinde ich mich da auf dem Holzweg?

Vielen Dank für die Hilfe.

aet
 
Zuletzt von einem Moderator bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.228
1.961
Berlin
Ich würde das base Verzeichnis direkt aus dem Child Template rauswerfen und einen symbolischen Link zum base vom evo setzen.
Warum: mit einem Update ist die Wahrscheinlichkeit hoch, dass sich etwas in der base.less ändert, so umgehst du jeglichen Stress das ständig neu rüber zu kopieren und zu bearbeiten.

Ich würde dann das less Verzeichnis aus dem slate/ in das my-theme/ oder wie auch immer du das dann nennen wirst kopieren und dann dieses Theme auch neu compilen, damit dort die Bootstrap.css erstellt wird.
Änderungen wirst du dann in der angelegten css/mytheme.css im Child vornehmen, wenn du dich nicht mit less beschäftigen möchtest.

Was du noch tun solltest: Die Fonts aus dem Evo solltest du auch in das Child kopieren, wenn du auch Upload Artikel hast dann solltest du auch die JS und css Dateien vom Evo ins Child kopieren, da es hier einen BUG im Shop gibt.

Wenn es dann später mal ein Update gibt, dann gehst du wie folgt vor:
Du überspielst das Evo Template, danach compilest du dein Theme neu, damit er Änderungen die an der base.less eventuell vorgenommen wurden übernimmt.
 
Zuletzt von einem Moderator bearbeitet:

AET

Aktives Mitglied
9. Januar 2018
63
6
Ich würde das base Verzeichnis direkt aus dem Child Template rauswerfen und einen symbolischen Link zum base vom evo setzen.
Warum: mit einem Update ist die Wahrscheinlichkeit hoch, dass sich etwas in der base.less ändert, so umgehst du jeglichen Stress das ständig neu rüber zu kopieren und zu bearbeiten.

Ich würde dann das less Verzeichnis aus dem slate/ in das my-theme/ oder wie auch immer du das dann nennen wirst kopieren und dann dieses Theme auch neu compilen, damit dort die Bootstrap.css erstellt wird.
Änderungen wirst du dann in der angelegten css/mytheme.css im Child vornehmen, wenn du dich nicht mit less beschäftigen möchtest.

Was du noch tun solltest: Die Fonts aus dem Evo solltest du auch in das Child kopieren, wenn du auch Upload Artikel hast dann solltest du auch die JS und css Dateien vom Evo ins Child kopieren, da es hier einen BUG im Shop gibt.

Wenn es dann später mal ein Update gibt, dann gehst du wie folgt vor:
Du überspielst das Evo Template, danach compilest du dein Theme neu, damit er Änderungen die an der base.less eventuell vorgenommen wurden übernimmt.

Hallo, und erstmal Danke für die Info's.

Wenn ich Deine Antwort richtig deute ist mein Vorgehen an sich richtig, aber wäre noch besser mit dem symbolischen Link.

Aber ist der symbolische Link nicht der den ich in der /Evo-Child/themes/base/less base.less mit @import "../../../../Evo/themes/slate/less/theme setze? Wenn nicht wie würde das aussehen?

Viele Grüße

aet
 
Zuletzt von einem Moderator bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.228
1.961
Berlin
Nein, das ist ein Pfad den du angibst wo er die less Dateien vom base findet.

Hier mal ein Auszug aus meiner childTemplate/php/functions.php, das kannst du so bei dir im Child anlegen, nimm nicht die functions.php aus dem evo und kopiere die ins Child
cssLayout in der letzten Zeile ist hier der Name meines Child Templates, das muss natürlich angepasst werden.

Code:
<?php
include_once $smarty->get_template_vars('parent_template_path').'php/functions.php';

$cssTemplateConfig = \Shop::getSettings(array(CONF_TEMPLATE, CONF_CACHING));
$cssTemplateDir = $smarty->__get('template_dir')['frontend'];
$cssThemePath = $cssTemplateDir.'themes/'.$cssTemplateConfig['template']['theme']['theme_default'].'/';

if($cssTemplateConfig['caching']['caching_activated']=='N' || $cssTemplateConfig['template']['general']['EntwicklerModus']=='Y')    {
  \Shop::Cache()->flushAll();
  $smarty->clear_compiled_tpl();
}

if($cssTemplateConfig['template']['general']['themeSymLinks']=='Y' )    {
  if(isset($GLOBALS['template']->xmlData)) {
    if(($dir = opendir (PFAD_ROOT.'templates/Evo/themes/')) !== null) {
        $i=0;
      while (($file = readdir($dir)) !== false && $i++<100) {
        if($file != '..' && $file!='.' && is_dir(PFAD_ROOT.'templates/Evo/themes/'.$file) ) {
           @symlink ( PFAD_ROOT.'templates/Evo/themes/'.$file , PFAD_ROOT.'templates/'.$GLOBALS['template']->xmlData->cOrdner.'/themes/'.$file );
        }
      }
      closedir($dir);
    }
    $cssTemplateObj = new \stdClass();
    $cssTemplateObj->cWert ='N';
    \Shop::DB()->updateRow('ttemplateeinstellungen', array('cTemplate','cSektion','cName'), array('cssLayout','general','themeSymLinks'), $cssTemplateObj);
}

Und die template.xml erweiterst du dann mit diesem Eintrag:

Code:
        <Section Name="Allgemein" Key="general">
            <Setting Description="Symlinks der Themes prüfen / wiederherstellen, bitte lassen SIe diese Option bei Ihrer erstinstallation aktiviert" Key="themeSymLinks" Type="select" Value="Y">
                <Option Value="Y">Ja</Option>
                <Option Value="N">Nein</Option>
            </Setting>
        </Section>
        <Section Name="Allgemein" Key="general">
            <Setting Description="Entwicklermodus aktiv" Key="EntwicklerModus" Type="select" Value="N">
                <Option Value="Y">Ja</Option>
                <Option Value="N">Nein</Option>
            </Setting>
        </Section>

Das sorgt dafür das dein Child Template bei der Aktivierung die Symlinks automatisch erstellt.

Die Vorgehensweise wird eventuell nicht jedem gefallen, aber es ist der aus meiner Sicht beste Weg und sorgt eben dafür das du nicht ständig die Daten vom base/ anpassen musst.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
524
Halle
Hallo aet,

Voraussetzungen:
Shop 4.06​
Evo Template mit Slate Theme​
Evo-Child Template mit dem Minimum-Template aus https://gitlab.com/falk.jtl/evo-child-vorlage/tree/master von Falk Prüfer angelegt (lässt sich auch aktivieren), jedoch noch nichts verändert.​
Hier bitte beachten, dass der master-Stand immer für den aktuellen Entwicklungsstand des Shop - aktuell also für Shop5 - angepasst ist und ggfs. für ältere Versionen nicht geeignet ist. (Dort fehlen z.B. die angesprochenen JS-Dateien, da das ab 5.0 nicht mehr notwendig ist.) Für Shop 4.06 bitte die Vorlage aus dem entsprechenden Branch verwenden: https://gitlab.com/falk.jtl/evo-child-vorlage/tree/release/4.06

  • Wenn ich jetzt das Child Template aktiviere ist es leer und ich muss einfach alle Einstellungen die ich vorher im Evo gemacht habe wieder im Child einstellen. Die Vererbungen des Evo auf das Child gelten nicht für die Grundeinstellungen, richtig?
Das ist richtig!
  • Das Thema Slate wird nicht angegeben, nur das my-evo. Soweit ich verstanden habe sollte ich jetzt im Child Template unter /Evo-Child/themes/base/less in den Dateien base.less und variables.less die Pfade anpassen. Dann sollte das Slate Thema laufen, richtig?
    • Also in der base.less - @import "../../../../Evo/themes/evo/less/theme"; - ändern zu @import "../../../../Evo/themes/slate/less/theme";.
    • Und in der variables.less - @import "../../../../Evo/themes/evo/less/variables"; - ändern zu @import "../../../../Evo/themes/slate/less/variables";.
Das ist grundsätzlich so richtig. Die Child-Vorlage ist so angelegt, dass man auf Grundlage eines bestimmten Evo-Themes mehrere eigene Theme-Variationen anlegen kann. Deshalb besitzt die Vorlage hier ein eigenes base-Verzeichnis und erbt nicht einfach alle Themes des Evo.
Anmerkung hierzu: Dieser Weg ist Updatesicher, da alle Angaben aus dem Parent importiert werden! Er erlaubt jedoch keine Anpassung über den Evo Theme-Editor, da dieser die Inhalte der Dateien direkt auswertet. Wenn also Anpassungen über den Theme-Editor gemacht werden sollen, müssen die Less-Dateien kopiert oder wie von css-umsetzung vorgeschlagen über Symlinks eingebunden werden. Wenn du deine Anpassungen dagegen direkt über eigene Less-Dateien vornimmst, ist das nicht notwendig.
  • Wenn ich dies habe muss ich laut meinem Verständnis kompilieren. Und dann sollte es laufen und ich kann die gewünschten Änderungen vornehmen. Also die zu ändernden Dateien kopieren, ändern und in den gleichen Child Verzeichnissen ablegen.
Ist das so richtig oder befinde ich mich da auf dem Holzweg?
Das sieht soweit gut aus ;)
 
Zuletzt bearbeitet:

AET

Aktives Mitglied
9. Januar 2018
63
6
Hallo FPrüfer,

vielen Dank für die Antwort. Ich habe die 4.06 Version genommen und soweit funktioniert es mit den .less Dateien. Jetzt muss ich mich nur noch an die Einbindung mit den Symlinks von css-umsetzung machen...
 

Jogi1962

Gut bekanntes Mitglied
24. März 2012
255
15
NRW
Hallo @css-umsetzung,

ich habe als child-Template das originale 4.06 child, Thema EVO. Habe alle Eintragungen gemacht, hochgeladen und es funktioniert.

Dann wollte ich deine Empfehlungen von oben umsetzen und bekomme beim compilieren die Fehlermeldung base/less/base.less existiert nicht und beim Seitenaufruf in Chrome "Die Seite funktioniert nicht."

Wo kann da der Fehler liegen?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.228
1.961
Berlin
Vermutlich weil du die Symlinks nicht hast erstellen lassen.
Das Template kümmert sich selbst darum das es compiled wird. Aber die Option Symlink erstellen sollte nach aktiviert sein.
 

Jogi1962

Gut bekanntes Mitglied
24. März 2012
255
15
NRW
Hallo,
danke für die Antwort. Aber wo aktiviere ich das denn? Ich habe an deinen Vorlagen oben nichts geändert außer dem Namen "cssLayout".
 

worqpro

Aktives Mitglied
18. Dezember 2020
69
8
Guten Tag,

Wir möchten gerne die gelbe Farbe ändern. Nur wissen wir leider nicht, welche genaue Einstellungen beim JTL Theme Editor verändert werden müssen.
Auf PC ist alles rot, wie es sein sollte. Auf Handy wiederum Gelb.
Wir möchten das alles einheitlich ist.

Vielen Dank für eure Hilfe


Handy: IMG_795A94475121-1.jpeg PC: Bildschirmfoto 2022-02-03 um 09.52.36.png
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Laden einer JS-Datei aus dem Nova im Child Template verhindern Templates für JTL-Shop 4
Neu Child Template zieht die englischen Artikelbeschreibungen nicht Templates für JTL-Shop 3
Neu jtl.evo.js über Child Template anpassen. Geht das? Technische Fragen zu Plugins und Templates 6
Neu Child Template erstellen Technische Fragen zu Plugins und Templates 22
Neu Amazon Lister 2.0 Parent-Child Amazon-Lister - Fehler und Bugs 0
Neu Child-Theme erst im Nachgang Templates für JTL-Shop 1
Neu Bewertungssterne von Child-Artikeln in Artikellisten Templates für JTL-Shop 0
Neu Template Dateien Rendern im Plugin Plugins für JTL-Shop 6
Neu Artikelsticker mit Nova-Template Einrichtung von JTL-Shop4 11
Neu GPSR Verordnung - Wie handhabt ihr das im Shop mit dem Nova Template? Betrieb / Pflege von JTL-Shop 30
Neu Eigene Alerts im Template ausgeben bzw. hinzufügen Templates für JTL-Shop 0
Neu Retoure erstellen nach 1 Woche in Wawi mit Sumup als Zahlungsanbieter Allgemeine Fragen zu JTL-POS 2
Welche GPSR Plugin-Einstellungen mit WaWi 1.9.6.1 JTL-Wawi 1.9 6
Probleme beim Export mit der Ameise JTL-Wawi 1.7 1
Neu Artikelimport bricht mit Fehlermeldung ab JTL-Ameise - Fehler und Bugs 5
Neu LS-POS mit COM-Port in RDP Sitzung langsam Fragen rund um LS-POS 0
WAWi Workflows mit Zahlungen als Bedingung funktioniert nicht JTL-Workflows - Fehler und Bugs 0
Neu Verdandliste Pro Paket das Gewicht mit ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Paternoster Umlaufregal mit JTL Wawi möglich? JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Aufträge mit nicht verfügbaren Artikeln automatisch zurückhalten User helfen Usern - Fragen zu JTL-Wawi 2
Neu WooCommerce Connector Problem mit nachträglich abgebrochenen Bestellungen Onlineshop-Anbindung 0
Neu Überverkäufe mit Kindartikeln - wie richtig einstellen ? User helfen Usern - Fragen zu JTL-Wawi 23
Neu Problem mit Variationen-Artikeln JTL-Shop - Fehler und Bugs 2
Neu WMS - Nachträglicher Labeldruck mit Adressänderung Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Connector Verhalten mit Tracking Nummern und Versandbestätigungen Shopify-Connector 0
Neu OTTO-Marketplace Versand NICHT mit DHL möglich? Smalltalk 4
Neu Frage an die (Hobby-) Controller: B2C Einzelhandel mit 6% Marketingbudget - das ist normal? Business Jungle 7
Neu Probeme WaWi mit POS verbinden - failed to connect - server IP 127.0.0.1 Einrichtung / Updates von JTL-POS 0
Neu Immense Probleme mit dem Aufschalten neuer Produkte Amazon-Anbindung - Fehler und Bugs 0
Neu Aufträge mit falsche Steuerart angelegt User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi Auftrag in JTL POS öffnen (problem mit Kartenzahlung) Allgemeine Fragen zu JTL-POS 0
Neu Wie erstelle ich Bundles mit JTL Wawi? User helfen Usern 1
Auftrag Inlandskunde mit USt-Id - wie erfassen JTL-Wawi 1.7 6
Konfigurationsartikel mit 0 € vs. Preise der einzelnen Komponenten mit 0 € Einrichtung JTL-Shop5 1
Neu Zahlungsart Überweisung mit Skonto Allgemeine Fragen zu JTL-Shop 1
Neu Übersicht Verkauf mit Artikelmenge und durchschnittlichem VK netto Eigene Übersichten in der JTL-Wawi 6
Neu Artikel mit negativem Preis (Gutschein) eingeben kompliziert...geht das einfacher? Allgemeine Fragen zu JTL-POS 3
Neu Shop 5.4 - Error 500 mit aktiviertem JTL Debug JTL-Shop - Fehler und Bugs 8
Neu Preisdarstellung mit der niedrigsten Staffelung Allgemeine Fragen zu JTL-Shop 5
Neu Plugin mit transparentem Hintergrund (Auswahlassistent) Plugins für JTL-Shop 1
Neu Umgang mit Chargen bei mehreren Bestellungen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu Fehler mit Zugriff auf die Datenbank (Exec Direct). Installation von JTL-Wawi 4
Neu In Filiale umbuchen mit Packungsgröße und dort mit JTL-POS einzeln "verkaufen" User helfen Usern - Fragen zu JTL-Wawi 3
Probleme mit Versandbenachrichtigung versenden JTL-Wawi 1.9 0
Neu Probleme mit PayPal-Plugin: Bestellungen "pending" & doppelte Zahlungen nach Direktzahlung Plugins für JTL-Shop 0
Neu Fehler 500 mit NOVAchild 5.3.1 in JTL-Shop 5.33 Templates für JTL-Shop 2
Neu Neueste Version Paypal Checkout: Rechnungskauf mit Ratepay und Paypal-Kreditkarte sind nicht verfügbar. Plugins für JTL-Shop 21
Neu SW 5.7.18: welcher Connector mit welcher Wawi? Shopware-Connector 1
Neu JTL FEHLER! - JTL sendet falschen ISO-Code - Nordirland Versand mit DHL nicht mehr möglich JTL-ShippingLabels - Fehler und Bugs 5

Ähnliche Themen