Neu Freitextfeld über Variation - Zeichenbeschränkung für Gravur

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Hallo Zusammen,

ich hatte das Thema bereits in einer anderen Kategorie eröffnet, ich vermute es war dort nicht ganz richtig aufgehoben, da keine Antworten kamen, deshalb probiere ich es hier noch einmal, denke mal ich bin nicht der einzige mit solch einer Anforderung :)

Ich möchte bei bestimmten Artikeln im Shop 5 die Möglichkeit einer Gravur anbieten.
Je nachdem welche Größenvariante ausgewählt wird, sollen im Shop dann 3, 4 oder 6 Zeilen für Freitext eingeblendet werden. Probiert habe ich das mit Anlegen einer Variation, Freitextauswahl. Sieht auch soweit gut aus (falls es weitere Möglichkeiten gibt, würde ich auch das in Betracht ziehen).

Allerdings ist die Zeichenanzahl in den jeweiligen Feldern begrenzt, z.B. mal sind es nur 12, mal 14 Zeichen.

Soweit ich im Browser erkennen kann, ist das Textfeld JTL seitig auf 255 Zeichen eingestellt, das könnte man auf jeden Fall überschreiben und eingrenzen auf z.B. 12 (funktioniert nach Einstellung im Browser auch).

Wie bzw. mit welcher Variable kann ich das aber nun global im Backend steuern, dass wenn ich "Gravur1" anlege (Name erstmal egal), dieses Feld immer nur 12 Zeichen zulässt und wenn ich "Gravur2" mit einblende/anlege, dieses Feld eben 14 Zeichen zulässt.

Wenn jetzt auch noch eine Beschriftung bzw. ein Hinweis möglich wäre, wie viele Zeichen noch übrig sind oder gar, dass manche Zeichen eingeschränkt bzw. nicht zugelassen sind, wäre das das sehr elegant :) Die Begrenzung selbst würde aber im ersten Schritt genügen.


Hier seht ihr wie ich es im Shop bei mir meine:

Gravur1.jpg




So würde ich es mir wünschen:

Gravur2.jpg


Danke.
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Das ordentlich mit Validierung zu machen ist nur mit Plugin möglich.

Aber es gibt immer noch einfache und unsichere Möglichkeit, das mit der Template zu lösen. Alles, was Sie tun müssen, ist, die Variation nach dem Namen zu überprüfen und dann "maxlength" zu ändern.

Die Datei befindet sich hier:
"productdetails/variation.tpl"

Code:
maxlength={if $variation->cName==="Gravour Text 1"}12{elseif $variation->cName==="Gravour Text 2"}14{else}255{/if}
 
Zuletzt bearbeitet:

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Danke für die erste Antwort und einem Ideenansatz.
Grundlegend - welches Plugin wäre für Shop 5 dafür geeignet?

Den Code wollte ich probieren, das funktioniert aber leider nicht so richtig.
Den Ansatz finde ich allerdings super, wenn das funktioniert, dürfte das auch erst einmal ausreichen und meine Anforderung erfüllen.

Wenn ich die variation.tpl bearbeite und den Code so einfüge:

2.jpg

bekomme ich auf jeder Variationsseite einen Error 500, die Seite wird nicht mehr geladen. Ursprünglich stand hinter maxlength "maxlength=255", ich habe Ihren Code mit der richtigen Beschriftung aus der Wawi eingefügt.

Wenn ich die Freitextzeile im Browser untersuche, steht der Name aus der WaWi allerdings unter dem "js-btn-slider-wrapper" ist hier evtl. etwas im Code zu verändern, damit der Bezug stimmt, oder habe ich etwas komplett falsch eingefügt?

1.jpg
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Grundlegend - welches Plugin wäre für Shop 5 dafür geeignet?
Ob so ein Plugin bereits existiert kann ich nicht sagen, ich meinte aber die individuelle Entwicklung von Service-Partner.

bekomme ich auf jeder Variationsseite einen Error 500, die Seite wird nicht mehr geladen. Ursprünglich stand hinter maxlength "maxlength=255", ich habe Ihren Code mit der richtigen Beschriftung aus der Wawi eingefügt.
Ich habe den meinen obigen Code nicht ausprobiert. Dieser sollte funktionieren:

Code:
{block name='productdetails-variation-info-variation-text'}
    {if $Variation->cName==="Gravour Text 1"}
        {assign var=maxlength value=12}
    {elseif $Variation->cName==="Gravour Text 2"}
        {assign var=maxlength value=14}
    {else}
        {assign var=maxlength value=255}
    {/if}
    <label for="vari-{$Variation->kEigenschaft}" class="sr-only">{$Variation->cName}</label>
    {input id="vari-{$Variation->kEigenschaft}" name='eigenschaftwert['|cat:$Variation->kEigenschaft|cat:']'
       value=$oEigenschaftWertEdit_arr[$Variation->kEigenschaft]->cEigenschaftWertNameLocalized|default:''
       data=['key' => $Variation->kEigenschaft] required=$Variation->cTyp === 'PFLICHT-FREIFELD'
       maxlength=$maxlength}
{/block}
 
  • Gefällt mir
Reaktionen: TobiTrouble

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Super - Perfekt.
Der Code funktioniert, so habe ich mir das vorgestellt, das kann ich nun so adaptieren auf verschiedene Artikel :) Vielen Dank!
Hättest du noch eine Idee, wie man in den Code Zeichen die nicht zulässig sind integrieren kann?

Freue mich auch über Ideen, wie man die Anzeige am Freifeld (z.B. " Max 12 Zeichen") einblenden könnte und ggfls. eine Art Zeichenzähler, wie viele Zeichen noch zum Eintragen verfügbar sind!
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Hättest du noch eine Idee, wie man in den Code Zeichen die nicht zulässig sind integrieren kann?
Die Werte kann man mit pattern-Attribut begrenzen.
Freue mich auch über Ideen, wie man die Anzeige am Freifeld (z.B. " Max 12 Zeichen") einblenden könnte und ggfls. eine Art Zeichenzähler, wie viele Zeichen noch zum Eintragen verfügbar sind!
Zeichenzähler ausgeben kann man nur mit JS.

Wie ich beretis erwähnt habe, für die Validierung, Plugin wäre hier die sicherste Lösung.

Ich habe hier ein neues Beispiel basierend auf dem vorherigen gebastelt, sollte ziemlich einfach und verständlich sein.

Code:
{block name='productdetails-variation-info-variation-text'}
    {if $Variation->cName==="Gravour Text 1"}
        {assign var=maxlength value=12}
        {assign var=variPattern value="[A-Za-z0-9]"}
    {elseif $Variation->cName==="Gravour Text 2"}
        {assign var=maxlength value=14}
        {assign var=variPattern value="[A-Za-z0-9]"}
    {else}
        {assign var=maxlength value=255}
        {assign var=variPattern value=""}
    {/if}
    <label for="vari-{$Variation->kEigenschaft}" class="sr-only">{$Variation->cName}</label>
    {input id="vari-{$Variation->kEigenschaft}" name='eigenschaftwert['|cat:$Variation->kEigenschaft|cat:']'
       value=$oEigenschaftWertEdit_arr[$Variation->kEigenschaft]->cEigenschaftWertNameLocalized|default:''
       data=['key' => $Variation->kEigenschaft] required=$Variation->cTyp === 'PFLICHT-FREIFELD'
       maxlength=$maxlength}
    <script>
        let variInput = "#vari-{$Variation->kEigenschaft}";
        let variInputInfo = "#vari-info-{$Variation->kEigenschaft}";
        $(variInput).attr("pattern", "{$variPattern}" + "{literal}{{/literal}" + {$maxlength} + "{literal}}{/literal}");
        $(variInput).parent().prev("dt").html("{$Variation->cName} (Max {$maxlength} Zeichen)");
        $(variInput).after('<span id="' + variInputInfo + '"></span>');
        $(variInput).keyup(function() {
            let cLeft = {$maxlength} - $(variInput).val().length;
            $(document.getElementById(variInputInfo)).html(cLeft + " Zeichen noch");
        });
    </script>
{/block}
 
  • Gefällt mir
Reaktionen: TobiTrouble

TobiTrouble

Aktives Mitglied
7. April 2018
65
6
Cool, das gefällt mir immer besser :thumbsup:
Funktioniert an sich mit dem Skript, allerdings leider nicht vollständig.

Oberes Eingabefeld ist anders benannt, dann greifen die Standard 255 Zeichen - das ist ok, mit dem Skript zählt er sogar herunter.
Unteres Feld wird durch den Code angesprochen, damit die Zeichenanzahl auf 14 begrenzt ist - auch gut, mit dem Skript allerdings wird hier nicht gezählt, fehlt da etwas im Code?
Du hast als Value Wert im Code für die Zeichen selbst angegeben: {assign var=variPattern value="[A-Za-z0-9]"}, er nimmt allerdings in beiden Fällen auch alle anderen Zeichen, kann ich das im Code anpassen und wenn ja wo?

3.jpg
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Freitextfeld mit der Ameise hinzufügen User helfen Usern - Fragen zu JTL-Wawi 3
Telefonnummer über Klarna JTL-Wawi 1.9 0
Neu Email-Versand über MS365 geht nicht Installation von JTL-Wawi 1
In Diskussion Hinweis im WMS Ausgeben wenn ein bestimmter Artikel verpackt wird über WMS JTL-Workflows - Ideen, Lob und Kritik 5
Neu Versand über Kundenaccount Allgemeine Fragen zu JTL-Shop 5
In Diskussion Keine Auslieferung nach Zahlungsartänderung über Workflow JTL-Workflows - Fehler und Bugs 4
Neu WMS über Remote druckt langsam Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 8
Neu Artikel lässt sich im Shop 5.2.5 über die Wawi nicht löschen JTL-Shop - Fehler und Bugs 2
Neu Toplevel-Banner hinzufügen und/oder über Wawi Steuern Allgemeine Fragen zu JTL-Shop 0
Neu Einzelne Artikel über stückliste im Packtisch scannen User helfen Usern - Fragen zu JTL-Wawi 3
Maximal unzuverlaässiges ermitteln von fba Bedarf über die Umlagerungen in jtl. JTL-Wawi 1.9 0
Gelöst Artikel an der Kasse beim scannen nur über Artikelnummer, nicht über GTIN identifizieren (Gebrauchtware, GTIN mehrfach in der Wawi) Allgemeine Fragen zu JTL-POS 1
Neu Spam über Frage zum Artikel User helfen Usern - Fragen zu JTL-Wawi 10
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu jtl.evo.js über Child Template anpassen. Geht das? Technische Fragen zu Plugins und Templates 6
Amazon Angebote über JTL schließen JTL-Wawi 1.6 0
Neu Permanenten Excel-Log über Workflow führen User helfen Usern - Fragen zu JTL-Wawi 2
WaWi Bestellung über Amazon erfüllen lassen - FBA Bestände werden nicht angezeigt Amazon-Anbindung - Ideen, Lob und Kritik 2
Artikelverkauf über JTL-Shop mit Bestand 0 in der JTL WaWi JTL-Wawi 1.9 13
Neu IDeal Zahlung über Paypal und Bestellung nicht erhalten. Geld aber abgebucht.... Allgemeine Fragen zu JTL-Shop 2
Wawi unsanft täglich beenden über CMD Taskkill JTL-Wawi 1.8 1
Neu Amazon Bestellung über JTL stornieren Amazon-Anbindung - Fehler und Bugs 2
Neu Vererben der Bildern einer Variation auf alle anderen Variationen, wie beim Vererben von Vater zu Kind-Artikeln, möglich wie? User helfen Usern - Fragen zu JTL-Wawi 0
Lagerartikel mit Variation, von denen manche kein Lager brauchen JTL-Wawi 1.9 1

Ähnliche Themen