Guten Morgen
ich habe eine Kleinigkeit für unseren Shop entwickelt den ich gern mit euch teilen wollte, es ist ein für uns simples Script mit dem man weitere Artikel auf die Startseite bringen kann.
Shopversion: 4.05 (Build: 6)
Installation
Unter Artikel => Attribute habe ich für den JTL-Shop ein neues Kategorie-Attribut gesetzt "startseite" eine Werteliste mit den Werten 1,2,3,4,5
in unserem Childtemplate habe ich folgende punkte ergänzt
function.php
Ich habe zum Smarty-Object ein Plugin hinzugefügt:
Und so sieht die Funktion aus
page/index.tpl
Auf dem Startseiten-Template-File habe ich oberhalb der Standard-Slider erkennbar durch:
habe ich folgende Zeilen eingefügt:
Mit diesen Zeilen greift Smarty auf die in der Functions definierten Funktion zu, holt sich die Artikel und gibt diese in eine von JTL definierte Funktion, die den Standardslider mit unseren Artikeln füllt.
Anwendung
Man kann nun seiner Kategorie das Attribut "startseite" vergeben (1-5) und im Slider werden nun die Top-Artikel der Kategorie dargestellt.
Dabei verwendet dieses Script den Kategorienamen als Sliderüberschrift und wenn man auf den Pfeil rechts klickt gelangt man in die Kategorie. Dabei wird die Reihenfolge über den Wert 1-5 gewählt.
Dieser Beitrag ist als Hilfestellung für andere zusehen als auch als Verbesserungsvorschlag für die Startseite des Shops.
Mein PHP ist etwas eingerostet deshalb will ich nochmal ausdrücklich darauf hinweisen, dass ich keine Garantie für dieses Script übernehme.
Mann kann die Anzahl der Slider noch erweitern, worauf ich aufgrund der Seitenladezeit jedoch verzichten würde.
- Marco
ich habe eine Kleinigkeit für unseren Shop entwickelt den ich gern mit euch teilen wollte, es ist ein für uns simples Script mit dem man weitere Artikel auf die Startseite bringen kann.
Shopversion: 4.05 (Build: 6)
Installation
Unter Artikel => Attribute habe ich für den JTL-Shop ein neues Kategorie-Attribut gesetzt "startseite" eine Werteliste mit den Werten 1,2,3,4,5
in unserem Childtemplate habe ich folgende punkte ergänzt
function.php
Ich habe zum Smarty-Object ein Plugin hinzugefügt:
Code:
->registerPlugin('function', 'get_top_product_by_cat', 'get_top_product_by_cat')
Und so sieht die Funktion aus
Code:
function get_top_product_by_cat($topcatNr, &$smarty) {
$result = Shop::DB()->executeQuery("SELECT tartikel.* FROM tartikel JOIN tkategorieartikel ON (tartikel.kArtikel = tkategorieartikel.kArtikel) WHERE tkategorieartikel.kKategorie = (SELECT DISTINCT tkategorieattribut.kKategorie FROM tkategorieattribut WHERE tkategorieattribut.cName LIKE 'startseite' and tkategorieattribut.cWert like ".$topcatNr.") AND tartikel.cTopArtikel LIKE 'Y'",2);
if(count($result) == 0 ) {
return '';
}
$artikelListe = [];
foreach($result as $key => $value) {
$artikelListe[$key] = new Artikel();
$artikelListe[$key]->fuelleArtikel($result[$key]->kArtikel, NULL);
}
$kat = Shop::DB()->executeQuery("SELECT * FROM tkategorie WHERE kKategorie = (SELECT DISTINCT tkategorieattribut.kKategorie FROM tkategorieattribut WHERE tkategorieattribut.cName LIKE 'startseite' and tkategorieattribut.cWert like ".$topcatNr.")", 2);
$artList = new \ArtikelListe();
$artList->elemente = $artikelListe;
$return = new stdClass();
$return->name = $kat[0]->cName;
$return->sort = 2;
$return->cURL = $kat[0]->cSeo;
$return->Artikel = $artList;
$return->anzahl = count($return->Artikel->elemente);
return $return;
}
page/index.tpl
Auf dem Startseiten-Template-File habe ich oberhalb der Standard-Slider erkennbar durch:
Code:
{if isset($StartseiteBoxen) && $StartseiteBoxen|@count > 0}
habe ich folgende Zeilen eingefügt:
Code:
{assign var='topByCat' value=get_top_product_by_cat(1)}
{include file='snippets/product_slider.tpl' productlist=$topByCat->Artikel->elemente title=$topByCat->name hideOverlays=true moreLink=$topByCat->cURL moreTitle='Zeige alle aus dieser Kategorie'}
{assign var='topByCat' value=get_top_product_by_cat(2)}
{include file='snippets/product_slider.tpl' productlist=$topByCat->Artikel->elemente title=$topByCat->name hideOverlays=true moreLink=$topByCat->cURL moreTitle='Zeige alle aus dieser Kategorie'}
{assign var='topByCat' value=get_top_product_by_cat(3)}
{include file='snippets/product_slider.tpl' productlist=$topByCat->Artikel->elemente title=$topByCat->name hideOverlays=true moreLink=$topByCat->cURL moreTitle='Zeige alle aus dieser Kategorie'}
{assign var='topByCat' value=get_top_product_by_cat(4)}
{include file='snippets/product_slider.tpl' productlist=$topByCat->Artikel->elemente title=$topByCat->name hideOverlays=true moreLink=$topByCat->cURL moreTitle='Zeige alle aus dieser Kategorie'}
{assign var='topByCat' value=get_top_product_by_cat(5)}
{include file='snippets/product_slider.tpl' productlist=$topByCat->Artikel->elemente title=$topByCat->name hideOverlays=true moreLink=$topByCat->cURL moreTitle='Zeige alle aus dieser Kategorie'}
Mit diesen Zeilen greift Smarty auf die in der Functions definierten Funktion zu, holt sich die Artikel und gibt diese in eine von JTL definierte Funktion, die den Standardslider mit unseren Artikeln füllt.
Anwendung
Man kann nun seiner Kategorie das Attribut "startseite" vergeben (1-5) und im Slider werden nun die Top-Artikel der Kategorie dargestellt.
Dabei verwendet dieses Script den Kategorienamen als Sliderüberschrift und wenn man auf den Pfeil rechts klickt gelangt man in die Kategorie. Dabei wird die Reihenfolge über den Wert 1-5 gewählt.
Dieser Beitrag ist als Hilfestellung für andere zusehen als auch als Verbesserungsvorschlag für die Startseite des Shops.
Mein PHP ist etwas eingerostet deshalb will ich nochmal ausdrücklich darauf hinweisen, dass ich keine Garantie für dieses Script übernehme.
Mann kann die Anzahl der Slider noch erweitern, worauf ich aufgrund der Seitenladezeit jedoch verzichten würde.
- Marco
Zuletzt bearbeitet: