Neu Child Template erstellen

MrS

Mitglied
23. Dezember 2023
60
3
Hallo zusammen,

ich bin relativ neu, was JTL- Shop angeht. Es wurden bereits ein paar Anpassungen am Template durchgeführt, die ein Kollege gemacht hat. Nun ist es aus verschiedenen Gründen an der Zeit, den Shop auf die neue Version upzudaten. Wenn die Änderungen am Template nicht verloren gehen sollen, muss - wenn ich das richtig verstanden habe - ein Child-Template erstellt werden. Ich habe mir den Guide zu dem Thema angeschaut und finde ihn irgendwie nicht richtig nachvollziehbar. Kann mir jemand eine genauere Anleitung geben, wie ich ein Child-Template erstelle, und wie ich die Änderungen (ich weiß nicht genau. welche Anpassungen vorgenommen wurden) ins Kind übernehmen kann.

Bin da gerade leider ziemlich Ratlos.

VG
Stephen
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
Du solltest dir als erstes über die Template Einstellungen anschauen, welche Dateien im Template modifiziert wurden.
Zusätzlich solltest du dir das parent Template auch sichern, damit da nichts weg ist nach dem Update.

Dann kannst du dir hier das aktuelle Child Template (als Vorlage) ziehen.
https://build.jtl-shop.de/#template

Wenn du das siehst, steigst du eventuell besser durch die Anleitung durch (learning by doing), weil es macht keinen Sinn, dir die Doku dazu nochmal in einem Beitrag herunterzuschreiben.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
Du solltest dir als erstes über die Template Einstellungen anschauen, welche Dateien im Template modifiziert wurden.
Zusätzlich solltest du dir das parent Template auch sichern, damit da nichts weg ist nach dem Update.

Dann kannst du dir hier das aktuelle Child Template (als Vorlage) ziehen.
https://build.jtl-shop.de/#template

Wenn du das siehst, steigst du eventuell besser durch die Anleitung durch (learning by doing), weil es macht keinen Sinn, dir die Doku dazu nochmal in einem Beitrag herunterzuschreiben.
Danke für deine Antwort! Learning by doing ist meistens am Besten. ;)

Hab im Vorfeld ein paar Fragen:

Welche Version brauche ich bei der Shopversion 5.2.4? Für den Shop 5.2 gibt es nur die 5.2.1 ist das dann die korrekte Version?

Im Template wurden 2 .tlp Dateien verändert. recht es dann aus, nur diese Dateien in die Child-Vorlage zu kopieren oder sollte man auch die nicht geänderten Dateien kopieren?


Beim CSS wurden mit dem Theme Editor Plugin Änderungen durchgeführt. reicht es aus, diese wieder zu übernehmen, oder gibt es noch andere Dinge zu beachten?

Selbstverständlich sichere ich alle Dateien vor der Änderung weg. Bin ja nicht Lebensmüde :cool::p

Vielen Dank für deine Hilfe!

Stephen
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
JTL Erstellt nur ein neues Demo Child, wenn es wesentliche Änderungen gab, ein Child das z.B. für den 5.3er erstellt wurde solltest du daher nicht verwenden.
Da du aber vermutlich auf die 5.3.3er gehen möchtest solltest du natürlich genau dieses Child nehmen, sobald du auf 5.3.3 bist.
Wesentliche Änderungen betreffen die scss Dateien im Theme vom Child.

Ja, als erstes würde ich die Dateien in das Child nehmen, dann würde ich schauen, was da wirklich für Änderungen durchgeführt wurden und dann nur die betreffenden Blöcke in meiner Child tpl verwenden, diese Blöcke musst du dann natürlich prüfen, ob da Abfragen oder Variablen im neuen NOVA geändert wurden.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
JTL Erstellt nur ein neues Demo Child, wenn es wesentliche Änderungen gab, ein Child das z.B. für den 5.3er erstellt wurde solltest du daher nicht verwenden.
Da du aber vermutlich auf die 5.3.3er gehen möchtest solltest du natürlich genau dieses Child nehmen, sobald du auf 5.3.3 bist.
Wesentliche Änderungen betreffen die scss Dateien im Theme vom Child.
Also zuerst die Vorlage von 5.2.1 nehmen, und dort die Änderungen machen, dass das Update und dann die neue Vorlage für 5.3 runderladen, und die Änderungen vom 5.2er Child rüber kopieren?

Ja, als erstes würde ich die Dateien in das Child nehmen, dann würde ich schauen, was da wirklich für Änderungen durchgeführt wurden und dann nur die betreffenden Blöcke in meiner Child tpl verwenden, diese Blöcke musst du dann natürlich prüfen, ob da Abfragen oder Variablen im neuen NOVA geändert wurden.
Also nicht die komplette .tpl-Datei ins Child kopieren, sondern nur die tatsächlichen Änderungen? Dann wäre es also sinnvoll, die geänderten Dateien mit einen Diff-Tool mit den originalen Dateien aus dem Nova-Template zu vergleichen und die Änderunen in das Child-Template zu ziehen, richtig? Es müssen dann vermutlich immer vollständige Blöcke kopiert werden, wenn ich das richtig verstehe. Am Ende dann die geänderten Dateien im Parent wieder durch die ursprünglichen originale ersetzen.

Es wurde z.b. per Abfrage die Seitenbox auf bestimmten Kategorieseiten ausgeblendet.

Jetzt habe ich mir noch das Theme Editor Plugin angeschaut. Dort sind einige Dateien mit Ihnalt und andere, die leer sind. Ich weiß leider nicht, ob dort Änderungen gemacht wurden. Wie würdest du da vorgehen? Die einzelnen Inhalte, aus den aufgeführten Dateien vorher kopieren und 1 zu 1 zurückziehen, wäre meine Idee.

Ich habe die Betreuung leider etwas später übernommen und weiß daher nicht, wer da vorher dran rumgepfuscht hat. Und ich habe das vorher nie gemacht. Wenn ich Änderungen am Template gemacht hätte, dann hätte ich das Child vor den Änderungen erstellt... ;) Aber leider war ich zu der Zeit noch nicht dabei
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
ja ich würde vor dem Update auf die aktuelle Version, erst die Vorhandene Version bereinigen, damit du sicher bist das alles noch funktioniert, wären es zu viele Änderungen dann würde ich das eh in einer Testumgebung aufbauen und mir diesen Zwischenschritt sparen. ( In deinem Fall ist es aber besser den umständlicheren Weg zu gehen, da du ja noch am Anfang bist)

zu den Blöcken:

das ist individuell je nachdem was gemacht wurde kannst du eben auch nur mit parent oder prepend arbeiten, In dem Fall wo du schreibst, das die Kategorieleiste ausgeblendet wird kannst du das zum Beispiel so machen

JavaScript:
{block name='balablabla'}
    {if !$WasAuchImmer}
        {$smarty.block.parent}
    {/if}
{/block}

So musst du dich dann ja nicht um spätere Codeänderungen nach einem Update, in dem block kümmern, dass ist dann also sehr Wartungsarm.

Wie ich schon schrieb, wesentliche Änderungen in den zur Verfügung gestellten Childs ist das scss in dem Theme.
Das in dem Child für 5.3 sieht aus als ob es dann die endgültige Lösung für alle weiteren sein wird.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
ja ich würde vor dem Update auf die aktuelle Version, erst die Vorhandene Version bereinigen, damit du sicher bist das alles noch funktioniert, wären es zu viele Änderungen dann würde ich das eh in einer Testumgebung aufbauen und mir diesen Zwischenschritt sparen. ( In deinem Fall ist es aber besser den umständlicheren Weg zu gehen, da du ja noch am Anfang bist)

Es sind zum Glück nicht viele Änderungen, so wie ich das gerade sehe. Aber trotzdem. Ich werde erstmal das Child erstellen und alles testen, bevor ich ein Update mache

zu den Blöcken:

das ist individuell je nachdem was gemacht wurde kannst du eben auch nur mit parent oder prepend arbeiten, In dem Fall wo du schreibst, das die Kategorieleiste ausgeblendet wird kannst du das zum Beispiel so machen

JavaScript:
{block name='balablabla'}
    {if !$WasAuchImmer}
        {$smarty.block.parent}
    {/if}
{/block}

So musst du dich dann ja nicht um spätere Codeänderungen nach einem Update, in dem block kümmern, dass ist dann also sehr Wartungsarm.

Wenn ich das richtig verstehe, mache ich nur die Abfrage im Child und rufe dann den Rest aus dem Parent auf, wenn die Abfrage zutrifft... Wäre ziemlich genial

Wie ich schon schrieb, wesentliche Änderungen in den zur Verfügung gestellten Childs ist das scss in dem Theme.
Das in dem Child für 5.3 sieht aus als ob es dann die endgültige Lösung für alle weiteren sein wird.
Wie ist es denn bei dem Update? Muss ich dann die Child-Vorlage auch manuell noch aktualisieren? Klingt auf jeden Fall gut, wenn danach erstmal keine groben Änderungen mehr kommen.

Könntest du noch kurz auf das Theme Editor Plugin eingehen? Das macht mich gerade noch etwas unsicher.


2024-08-16 17_15_04-Clipboard.png

In den Dateien mit einem Haken steht etwas drin und die ohne sind leer.
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
Da hast du ja nix drin zu suchen :)
wenn du das Child aktiv hast, dann gehst du in das Theme von dem Child und siehst da nur drei Dateien, nur das was du hinzufügen kannst ist für dich relevant.

bei dir steht da dann oben links vermutlich etwas wie my-nova oder so aber die Dateien sollten gleich sein und bei mir siehst du dann z.B: die farblichen Anpassungen, bzw. wie ich Variablen aus dem core überschreibe.

2024-08-16 17 27 32.png
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
Wenn in den Dateien im aktuellen Template durchgeführt worden sein sollten (ich weiß es leider nicht) was muss ich dann da eventuell machen?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
Das ist die Kunst, das herauszufinden.
Im besten Fall wurde nur etwas in den drei Dateien geändert, wenn aber jemand direkt in das erstellte css geschrieben hat, dann wirst du das kaum finden.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
So, ich habe mir jetzt mir einem Diff-Tool die einzelnen Änderungen angeschaut. Ich habe ein paar konkrete Fragen. In der /NOVA(layout/header.tpl wurden folgende Änderungen durgeführt:

1. Es wurden hreflang-Tags eingefügt. Wie übernehme ich diese ins Child? Muss ich da den kompletten Block, kopieren? Was mir dabei komisch vorkommt ist, dass vor den hreflang-Tags ein Block zuende geht, aber kein neuer anfängt aber irgendwann da drunter ein Block geschlossen wird, der scheinbar gar nicht geöffnet wurde. Hier mal der Code:

Code:
            {block name='layout-header-head-theme-color'}
                <meta name="theme-color" content="{if $Einstellungen.template.theme.theme_default === 'clear'}#f8bf00{else}#1C1D2C{/if}">
            {/block}
            <meta property="og:type" content="website" />
            <meta property="og:site_name" content="{$meta_title}" />
            <meta property="og:title" content="{$meta_title}" />
            <meta property="og:description" content="{$meta_description|truncate:1000:"":true}" />
            <meta property="og:url" content="{$cCanonicalURL}"/>

            <link rel="alternate" hreflang="de-DE" href="{$cCanonicalURL}" />
            <link rel="alternate" hreflang="de-CH" href="{$cCanonicalURL}" />
            <link rel="alternate" hreflang="de-AT" href="{$cCanonicalURL}" />
            <link rel="alternate" hreflang="x-default" href="{$cCanonicalURL}" />

            {$showImage = true}
            {$navData = null}
            {if !empty($oNavigationsinfo)}
                {if $oNavigationsinfo->getCategory() !== null}
                    {$showImage = in_array($Einstellungen['navigationsfilter']['kategorie_bild_anzeigen'], ['B', 'BT'])}
                    {$navData = $oNavigationsinfo->getCategory()}
                {elseif $oNavigationsinfo->getManufacturer() !== null}
                    {$showImage = in_array($Einstellungen['navigationsfilter']['hersteller_bild_anzeigen'], ['B', 'BT'])}
                    {$navData = $oNavigationsinfo->getManufacturer()}
                {elseif $oNavigationsinfo->getCharacteristicValue() !== null}
                    {$showImage = in_array($Einstellungen['navigationsfilter']['merkmalwert_bild_anzeigen'], ['B', 'BT'])}
                    {$navData = $oNavigationsinfo->getCharacteristicValue()}
                {/if}
            {/if}

            {if $nSeitenTyp === $smarty.const.PAGE_ARTIKEL && !empty($Artikel->getImage(JTL\Media\Image::SIZE_LG))}
                <meta itemprop="image" content="{$Artikel->getImage(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image" content="{$Artikel->getImage(JTL\Media\Image::SIZE_LG)}">
                <meta property="og:image:width" content="{$Artikel->getImageWidth(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image:height" content="{$Artikel->getImageHeight(JTL\Media\Image::SIZE_LG)}" />
            {elseif $nSeitenTyp === $smarty.const.PAGE_NEWSDETAIL && !empty($newsItem->getImage(JTL\Media\Image::SIZE_LG))}
                <meta itemprop="image" content="{$newsItem->getImage(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image" content="{$newsItem->getImage(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image:width" content="{$newsItem->getImageWidth(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image:height" content="{$newsItem->getImageHeight(JTL\Media\Image::SIZE_LG)}" />
            {elseif !empty($navData) && !empty($navData->getImage(JTL\Media\Image::SIZE_LG))}
                <meta itemprop="image" content="{$navData->getImage(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image" content="{$navData->getImage(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image:width" content="{$navData->getImageWidth(JTL\Media\Image::SIZE_LG)}" />
                <meta property="og:image:height" content="{$navData->getImageHeight(JTL\Media\Image::SIZE_LG)}" />
            {else}
                <meta itemprop="image" content="{$ShopLogoURL}" />
                <meta property="og:image" content="{$ShopLogoURL}" />
            {/if}
        {/block}

2. Wurde in der header.tpl das Meta-Pixel eingebunden. Das wurde vor dem <head/>-Tag eingesetzt. auch ohne Block. Kann wie füge ich das dann in das Child ein? Oder kopiere ich den gesamten Head in das Child-Template?

In der Datei /NOVA/boxes/box_categories.tpl wurde diese die Abfrage eingebaut, die ich oben bereits erwähnt habe. Wie übernehme ich das am Besten in das Child? Hier ist der Code:

Code:
               {if !empty($oBox->getTitle())}{$oBox->getTitle()}{else}{lang key='categories'}{/if}
                    {/link}
                {/block}
                {block name='boxes-box-categories-title'}
                    <div class="productlist-filter-headline d-none d-md-flex">
                        {if !empty($oBox->getTitle())}{$oBox->getTitle()}{else}{lang key='categories'}{/if}
                    </div>
                {/block}
                {block name='boxes-box-categories-collapse'}
                    {collapse
                        class="d-md-block"
                        visible=false
                        id="crd-cllps-{$oBox->getID()}"
                        aria=["labelledby"=>"crd-hdr-{$oBox->getID()}"]}
                        <div class="nav-panel">
                            {nav vertical=true}
                                {block name='boxes-box-categories-include-categories-recursive'}
                                    {include file='snippets/categories_recursive.tpl'
                                        i=0
                                        categoryId=0
                                        categoryBoxNumber=$oBox->getCustomID()
                                        limit=3
                                        categories=$oBox->getItems()
                                        id=$oBox->getID()}
                                {/block}
                            {/nav}
                        </div>
                    {/collapse}
                {/block}
                {block name='boxes-box-categories-hr-end'}
                    <hr class="box-normal-hr">
                {/block}
            {/block}
        </div>
    {/block}
{/if}


In der NOVA\themes\clear\clear.css wurden einige Farbanpassungen gemacht. Sollte ich nur die reine Zeile mit der Anpassung übernehmen oder den gesamten CSS-Block für das Element? Beispiel:

CSS:
.form-control:focus {
  color: #525252;
  background-color: #ffffff;
  border-color: #a6d71c;
  outline: 0;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}

oder

CSS:
.form-control:focus {
  color: #525252;
}

Dann gibt es noch Dateien, die mehrere Dateien, die mir komisch vorkommen. Beispiel:

NOVA/themes/base/sass/_base.scss und die _base.scss.original

hier ist es so, dass die _base.scss leer ist und die_base.scss.original einen Inhalt hat. Was hat es damit aufsich?

Ich weiß, das sind viele Fragen, aber ich mache das hier zum ersten Mal und bin mir sehr unsicher. Und ich möchte es nicht einfach live ausprobieren. Und ein Testsystem aufzusetzen, ist bei dem kleinen Shop glaube ich mit Kanonen auf Spatzen schießen und es ist gerade etwas Zeitkritisch.

Ich hoffe, dass du mir ein paar Tipps geben kannst. ;)
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
man nimmt nicht einen kompletten Block um etwas hinzuzufügen
dafür gibt die es die appen oder prepend Option

{block name="hanswurst" append}
blabla
{/block}

Bei den sass Dateien bleibt dir nichts anderes übrig, als diese mit dem original zu vergleichen und zuzusehen, dass du wenn es Änderungen gab, diese in deinen drei Dateien zu verarbeiten.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
Vielen Dank, @css-umsetzung! Das ist ein sehr guter Hinweis mit append undd prepend!

Die Änderungen aus der Header.tpl habe ich jetzt so übernommen. Das ist die vollständige header.tpl im Child. Habe ich das so korrekt übernomen?

Code:
{block name='layout-header-head-meta' append}
        <link rel="alternate" hreflang="de-DE" href="{$cCanonicalURL}" />
        <link rel="alternate" hreflang="de-CH" href="{$cCanonicalURL}" />
        <link rel="alternate" hreflang="de-AT" href="{$cCanonicalURL}" />
        <link rel="alternate" hreflang="x-default" href="{$cCanonicalURL}" />
{/block}

{block name='layout-header-head' append}
        {literal}
        <script>
        !function(f,b,e,v,n,t,s)
        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
        n.queue=[];t=b.createElement(e);t.async=!0;
        t.src=v;s=b.getElementsByTagName(e)[0];
        s.parentNode.insertBefore(t,s)}(window, document,'script',
        'https://connect.facebook.net/en_US/fbevents.js');
        fbq('init', '7508XXXXXX');
        fbq('track', 'PageView');
        </script>
        <noscript>
        <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=7508XXXXX&ev=PageView&noscript=1"/>
        </noscript>
        {/literal}

{/block}

ist das so korrekt? oder muss man noch ein Grundgerüst angeben, damit die Datei korrekt eingelesen wird?
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
Das nutzt nichts, es sei denn du hast einen externen consent Manager wie den von Webstollen z.B.
Der interne vom Shop kann das nicht abwickeln wenn im Template feste Codes hinterlegt sind.
 
  • Gefällt mir
Reaktionen: MrS

MrS

Mitglied
23. Dezember 2023
60
3
Hallo @css-umsetzung,

Ich habe nochmal eine Frage. ich habe gerade die Änderungen der NOVA/templates/themes/clear/clear.css ins Child-Template übernommen. Dort standen einige Änderungen drin. Ich hatte bei der Bearbeitung der Datei das Gefühl, dass die Änderungen in dieser Datei aus dem Custom-CSS-Bereich, den man im Backend Pflegen kann, automatisch in dieser Datei gepflegt wurden. Ich bin mir aber nicht 100% sicher. Ist das so, wie ich vermute?

Muss ich die Dateen clear.css.map und clear_crit.css anpassen oder kopieren? Die sind ja nicht wirklich formatiert und wurden von uns sicher nicht angepasst. Was hat es mit denDateien aufsich?
 

MrS

Mitglied
23. Dezember 2023
60
3
Noch eine Frage, dann habe ich es (hoffentlich) unfallfrei übernommen... Es geht nochmal um die If-Abfrage. Das habe ich gerade erst geblickt, als ich die boxes.categories.tpl nochmal in VS-Code mit dem Original verglichen habe (in WinMerge sah es absolut grausam aus). Es wurde eine If-Abfrage um den kompletten Inhalt gemacht. kann ich das dann im Child so einbinden?

Code:
{if isset($shippingCountry) && $shippingCountry != 'DE'}

    {block name='boxes-box-categories'}

    {/block}

{/if}
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.220
1.958
Berlin
Nein das kannst du nur innerhalb des Blocks machen, das hatte ich ja weiter oben angesprochen

Code:
{block name='balablabla'}
    {if !$WasAuchImmer}
        {$smarty.block.parent}
    {/if}
{/block}

zu deinem clear.css

das wird aus den ganzen sass Dateien erstellt, es bringt nichts wenn du eine css Datei bearbeitest, denn sowird das sobald das Theme compiled wird alles überschrieben.
Du musst die Änderungen also zwingend in den sass Dateien verarbeiten um sicher zu sein, oder diese Änderungen in der custom.css hinterlegen.
 
  • Gefällt mir
Reaktionen: MrS
Ä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 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 19
Neu Eigene Alerts im Template ausgeben bzw. hinzufügen Templates für JTL-Shop 0
Neu REST-API - Auftrag erstellen - wie Versandposition hinzufügen? Schnittstellen Import / Export 0
Neu Workflow erstellen, einen Wert aus den Stammdaten kopieren in einen anderen User helfen Usern - Fragen zu JTL-Wawi 8
Neu Marketing Coupons mit Betrag + versandkostenfrei erstellen Allgemeine Fragen zu JTL-Shop 4
Variationsertikel erstellen und in Woocommerce einbinden JTL-Wawi 1.9 4
Bundles erstellen - Seriennummern Verfolgung JTL-Wawi 1.9 0
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Eine weitere Datenbank erstellen Eigene Übersichten in der JTL-Wawi 2

Ähnliche Themen