Neu Slider Warenkorb zufügen > Nova

semtexone

Aktives Mitglied
1. Dezember 2018
13
1
Hallo,
ich möchte gerne in den Slidern auf der Startseite und den Produktstreams (Slider mit Namen und Preise) den Warenkorb Button unter jedem Artikel haben.
Auch wenn es natürlich nicht die beste Option ist ein Haupt Template zu ändern, würde ich gerne doch das entsprechende Template direkt anpassen.
Leider fehlt mir das Wissen wo, wie und was ich dort ändern muss.

Es handelt sich um das Nova Template.

Danke für die zahlreichen Tips.
 

ARA-Marketing

Offizieller Servicepartner
SPBanner
2. Oktober 2008
993
127
Regensburg
Unabhängig davon, dass es hier zu aufwändig wäre im Rahmen vom Forum den Weg aufzuzeigen (da wäre ganz schön viel zu machen,
das ist nämlich fast ein Komplettumbau der Slider) ist es so, dass du bei einer Möglichkeit zu "In den Warenkorb" auch rechtliche Dinge
beachten musst, wie z.B. Versandanzeige, Lieferzeit, Grundpreise usw....

Am besten ersiehst du das, wenn du mal von der Galerie in die Listenansicht wechselst, dann weißt du bestimmt, was ich meine...

VG
Eas
 

Scriptfarm DEV

Aktives Mitglied
7. Dezember 2018
63
17
@semtexone
Also wenn ich das richtig verstanden habe, möchtest Du in den Slidern wie "Neu im Sortiment" oder "Top-Angebot" usw. den Warenkorb Button und Anzahl Auswahl unter jedem Artikel haben.

Wie Du schon selber richtig festgestellt hast, ist es keine gute Idee ein Muttertemplate direkt anzupassen, schon alleine wegen der Updatefahigkeit.
Sowas macht man besser mit einem Hook bzw. Childtemplate.
Aber darum geht es dir ja wohl nicht.

Mit ein paar If Abfragen davor, kannste noch selektieren in welcher Seite, oder Auflösung Du diese Slideranpassung angezeigt haben möchtest.
Eventuell möchtest Du die Änderung nur auf der Startseite, aber nicht auf einer gewissen Unterseite X anzeigen lassen.
Suche die Template Datei /NOVA/productlist/item_slider.tpl und füge vor dem letzten Block Abschluss {/block} folgenden Code ein und schon ist das Ding abgegessen.
Natürlich kannste diesen Code direkt einfügen, in ein neues Template includieren, oder eben als Childtemplate anlegen.


@ARA-Marketing
Leider muss ich dir wiedersprechen, wenn man weiss wie, ist dieser Umbau in zwei Minuten erledigt und ist weder aufwändig noch bedarf Änderungen in mehr als einer Templatedatei.



{form id="buy_form_{$Artikel->kArtikel}" action=$ShopURL class="form form-basket jtl-validate" data=["toggle" => "basket-add"]} {block name='productlist-item-list-basket-details'} <div class="form-row productbox-onhover productbox-actions item-list-basket-details slider-buy"> {if ($Artikel->inWarenkorbLegbar === 1 || ($Artikel->nErscheinendesProdukt === 1 && $Einstellungen.global.global_erscheinende_kaeuflich === 'Y')) && (($Artikel->nIstVater === 0 && $Artikel->Variationen|@count === 0) || $hasOnlyListableVariations === 1) && !$Artikel->bHasKonfig && $Einstellungen.template.productlist.buy_productlist === 'Y'} {if $Artikel->nIstVater && $Artikel->kVaterArtikel == 0} {col cols=12} {block name='productlist-item-list-basket-details-variations'} {alert variation="info" class="choose-variations text-left-util"} {lang key='chooseVariations' section='messages'} {/alert} {/block} {/col} {else} {col cols=12} {block name='productlist-item-list-basket-details-quantity'} {inputgroup class="form-counter" data=["bulk" => {!empty($Artikel->staffelPreis_arr)}]} {inputgroupprepend} {button variant="" data=["count-down"=>""] aria=["label"=>{lang key='decreaseQuantity' section='aria'}]} <span class="fas fa-minus"></span> {/button} {/inputgroupprepend} {input type="{if $Artikel->cTeilbar === 'Y' && $Artikel->fAbnahmeintervall == 0}text{else}number{/if}" min="0" step="{if $Artikel->fAbnahmeintervall > 0}{$Artikel->fAbnahmeintervall}{/if}" min="{if $Artikel->fMindestbestellmenge}{$Artikel->fMindestbestellmenge}{else}0{/if}" max=$Artikel->FunktionsAttribute[$smarty.const.FKT_ATTRIBUT_MAXBESTELLMENGE]|default:'' size="2" id="quantity{$Artikel->kArtikel}" class="quantity" name="anzahl" autocomplete="off" aria=["label"=>{lang key='quantity'}] data=["decimals"=>{getDecimalLength quantity=$Artikel->fAbnahmeintervall}] value="{if $Artikel->fAbnahmeintervall > 0}{if $Artikel->fMindestbestellmenge > $Artikel->fAbnahmeintervall}{$Artikel->fMindestbestellmenge}{else}{$Artikel->fAbnahmeintervall}{/if}{else}1{/if}"} {inputgroupappend} {button variant="" data=["count-up"=>""] aria=["label"=>{lang key='increaseQuantity' section='aria'}]} <span class="fas fa-plus"></span> {/button} {/inputgroupappend} {/inputgroup} {/block} {/col} {col cols=12} {block name='productlist-item-list-basket-details-add-to-cart'} {button type="submit" variant="primary" block=true id="submit{$Artikel->kArtikel}" title="{lang key='addToCart'}" class="basket-details-add-to-cart" aria=["label"=>{lang key='addToCart'}]} {lang key='addToCart'} {/button} {/block} {/col} {/if} {else} {col cols=12} {block name='productlist-item-list-basket-details-details'} {link class="btn btn-outline-primary btn-block" role="button" href=$Artikel->cURLFull} {lang key='details'} {/link} {/block} {/col} {/if} </div> {/block} {block name='productlist-item-form-expandable-inputs-hidden'} {if $Artikel->kArtikelVariKombi > 0} {input type="hidden" name="aK" value=$Artikel->kArtikelVariKombi} {/if} {if isset($Artikel->kVariKindArtikel)} {input type="hidden" name="VariKindArtikel" value=$Artikel->kVariKindArtikel} {/if} {input type="hidden" name="a" value=$Artikel->kArtikel} {input type="hidden" name="wke" value="1"} {input type="hidden" name="overview" value="1"} {input type="hidden" name="Sortierung" value="{if !empty($Suchergebnisse->Sortierung)}{$Suchergebnisse->Sortierung}{/if}"} {if $Suchergebnisse->getPages()->getCurrentPage() > 1} {input type="hidden" name="seite" value=$Suchergebnisse->getPages()->getCurrentPage()} {/if} {if $NaviFilter->hasCategory()} {input type="hidden" name="k" value=$NaviFilter->getCategory()->getValue()} {/if} {if $NaviFilter->hasManufacturer()} {input type="hidden" name="h" value=$NaviFilter->getManufacturer()->getValue()} {/if} {if $NaviFilter->hasSearchQuery()} {input type="hidden" name="l" value=$NaviFilter->getSearchQuery()->getValue()} {/if} {if $NaviFilter->hasCharacteristicValue()} {input type="hidden" name="m" value=$NaviFilter->getCharacteristicValue()->getValue()} {/if} {if $NaviFilter->hasCategoryFilter()} {assign var=cfv value=$NaviFilter->getCategoryFilter()->getValue()} {if is_array($cfv)} {foreach $cfv as $val} {input type="hidden" name="hf" value=$val} {/foreach} {else} {input type="hidden" name="kf" value=$cfv} {/if} {/if} {if $NaviFilter->hasManufacturerFilter()} {assign var=mfv value=$NaviFilter->getManufacturerFilter()->getValue()} {if is_array($mfv)} {foreach $mfv as $val} {input type="hidden" name="hf" value=$val} {/foreach} {else} {input type="hidden" name="hf" value=$mfv} {/if} {/if} {foreach $NaviFilter->getCharacteristicFilter() as $filter} {input type="hidden" name="mf{$filter@iteration}" value=$filter->getValue()} {/foreach} {/block} {/form}
 
Zuletzt bearbeitet:

ARA-Marketing

Offizieller Servicepartner
SPBanner
2. Oktober 2008
993
127
Regensburg
@ARA-Marketing
Leider muss ich dir wiedersprechen, wenn man weiss wie, ist dieser Umbau in zwei Minuten erledigt und ist weder aufwändig noch bedarf Änderungen in mehr als einer Templatedatei.

Sorry..... aber einem User, der hier definitiv sagt, er hat das Wissen nicht, und der sechs Forum- Einträge hat, mute ich das so nicht zu.
Außerdem... ist das nur die halbe Miete, was du da postest. Das ist nicht zielführend und hilft dem User jetzt hier genauso wenig.


Eas
 

Scriptfarm DEV

Aktives Mitglied
7. Dezember 2018
63
17
Also mit Forenbeiträgen hat das wenig zu tun, ich habe auch wenig und schaue nur alle paar Monate mal hier rein.
Ich bin nur durch Zufall auf diesen Beitrag gestossen und benötigte vor Monaten für einen Kunden eine ähnliche Anpassung.
Und gerade weil er nun eindeutigerweise sich nicht so gut auskennt, muss man nicht alles immer so kompliziert machen und hinterfragen.
Der User möchte was eindeutiges haben und ich habe ihm den Code für sein Problem geliefert, den fügt er ein und gut ist.
Er weiss ja selber das man keine Muttertemplates anpassen sollte und selbst wenn, bricht die Welt auch nicht zusammen.
Und ein Stück Code aus einer anderen Templatedatei "item_list" zu kopieren, etwas anzupassen und in das entsprechende Template einzufügen, ist für mich fern eines Komplettumbaus.
Da muss man jetzt auch nicht noch zehn Beiträge zum Thema aufmachen "Nein, das darfste nicht, das ist nicht konform, wie kannste nur".
 
  • Gefällt mir
Reaktionen: semtexone

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.331
474
Hallo,

ich möchte an der Stelle wie Eas schon sagte auch nochmal auf die rechtlichen Anforderungen hinweisen. Damit nur den Warenkorb-Button hinzuzufügen wie oben im Code-Beispiel vorgeschlagen, ist es leider nicht getan.
Natürlich kann man auch versuchen die Sache selbst umzusetzen, bzw mit Hife aus dem Forum. Dann sollte man sich aber gerade bezüglich der rechtlichen Anforderungen gut informieren. Ich würde eher vorschlagen den Weg über die Hilfe eines Servicepartners zu gehen.

Viele Grüße
Michael
 

semtexone

Aktives Mitglied
1. Dezember 2018
13
1
Danke Scriptfam, das hat perfekt gepasst und war genau das ich gesucht habe
Habe es sogar ohne Probleme einbinden können.

Ich möchte selber ein Untertemplate versuchen zu bauen, warum soll ich da irgendwelche Servicepartner fragen.
Wenn ich für jede Codeänderung in der Richtung jemand Fragen muss, werde ich meine Artikel wohl lieber mit Einwurfpost und Brieftauben ausliefern.
 

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.331
474
Hallo,

Es ist natürlich löblich dass du dich selbst am Template-Bau probieren möchtest, das begrüße ich natürlich! Ich möchte an der Stelle wie gesagt nur auf Probleme hinweisen die auftreten können.
Ich habe den Code aus Interesse auch kurz getestet so wie er ist und habe festgestellt, dass die Warenkorb Button bei mir bei einigen Artikeln nicht funktionieren. Zusätzlich noch ein paar Dinge die schiefgehen/schiefgehen können:
- hat man mehrere Slider auf der Seite in denen Artikel doppelt vorkommen (z. B. auf der Startseite durch die Slider "Top-Angebote" und "Bestseller"), gibt es Meldungen der Art: "[DOM] Found 40 elements with non-unique id #: " (vllt ist das auch der Grund waum die Button bei mir nicht gehen, habe es nicht nachvollzogen)
- an Variationsartikeln werden bei mir die in den Warenkorb-Button angezeigt und können in den Warenkorb gelegt werden ohne dass man eine Variation auswählt
- bei Varkombis gibt es eine Notice " Undefined index: hasOnlyListableVariations in "
- die Blöcke haben noch die gleichen Namen wie vom Template aus dem die Sache kopiert wurde
- die Input-Felder sind mobil zu klein, gibt man also so etwas wie 100 ein sieht man nur 10

- und wie gesagt auch weiterhin: Rechtliche Problem, da Informationen fehlen

Viele Grüße
Michael
 

Ähnliche Themen