Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.
Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.
Ausgabe bestimmter Artikel auf der Startseite
0 Kommentare| ab Version: | 3.0.4 | bis Version: | 3.0.5.1 |
Inhaltsverzeichnis
Info
Artikel lassen sich natürlich auch über die "Einkaufswelten" direkt auf der Startseite anzeigen.
Vorbereitung
Bringen Sie die ID der Kategorie in Erfahrung, aus der Sie Artikel auf der Startseite ausgeben wollen. Dies können Sie im Backend unter Artikel > Kategorien durchführen, indem Sie die gewünschte Kategorie anklicken und die System-ID die rechts ausgegeben wird notieren.
Anpassung Klasse
Öffnen Sie die Datei engine/core/class/inherit/myCore.php
Fügen Sie vor dem Ende der Datei vor:
} ?>
folgendes ein:
function sStart(){ $result = parent::sStart(); $temp = $this->sSYSTEM->_GET["sCategory"]; $this->sSYSTEM->_GET["sCategory"] = 3; // ID der abzufragenden Kategorie hinterlegen $result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory(); $this->sSYSTEM->_GET["sCategory"] = $temp; return $result; }
Ersetzen Sie den Wert "3", durch die von Ihnen notierte Kategorie-ID. Zur Erklärung:
- parent::sStart(); - Hier wird zunächst die in der Klasse sCore notierte Funktion "sStart" im Original aufgerufen
- $temp = $this->sSYSTEM->_GET["sCategory"] - Die evtl. bereits gesetzte GET-Variable sCategory wird gesichert
- $this->sSYSTEM->_GET["sCategory"] = 3; // ID der abzufragenden Kategorie hinterlegen - Die Get-Variable sCategory erhält als Wert, die ID der von Ihnen gewünschten Kategorie
- $result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory(); - Es wird die Funktion "sGetArticlesByCategory" aufgerufen, diese Funktion generiert die bekannten Artikellistings. Der Rückgabewert der Funktion wird in die Variable $myHomepageArticles geschrieben und steht im Template unter dieser Bezeichnung zur Verfügung!
- $this->sSYSTEM->_GET["sCategory"] = $temp; - Die Get-Variable wird wieder auf den vorher hinterlegten Wert gesetzt
- return $result; - Das Ergebnis wird zurückgegeben.
Öffnen Sie nun die Datei templates/0/de/html/index/index_home.tpl und fügen Sie den Code zur Ausgabe der Artikel hinzu. Dieser kann z.B. wie folgt aussehen:
{foreach from=$myHomepageArticles item=offer key=key name="counter"} {include file="articles/article_box_1col.tpl" sArticle=$offer} {/foreach}
Styles und Darstellung müssen natürlich an Ihre Anforderungen angepasst werden.
FAQ
Code für 3.0.5
Ab Shopware 3.0.5 kann die Funktion sGetArticlesByID auch direkt mit Parametern aufgerufen werden. Syntax: sGetArticlesByCategory ($id=0,$blog=false,$limit=0) Beispielaufruf:
$result["variables"]["myHomepageArticles"] = $this->sSYSTEM->sMODULES['sArticles']->sGetArticlesByCategory(123,false,12); // 12 Artikel aus Kategorie 123 auslesen
Bestimmung der Sortierung
Setzen Sie vor dem Aufruf der Funktion sGetArticlesByCategory die _POST Variable "sSort" $this->sSYSTEM->_POST['sSort'] = 1; (Werte 1 bis 6)
- 1 = Sortierung nach Erscheinungsdatum
- 2 = Sortierung nach Verkäufen
- 3 = Sortierung nach Preis aufsteigend
- 4 = Sortierung nach Preis absteigend
- 5 = Sortierung nach Artikelnamen aufsteigend
- 6 = Sortierung nach Artikelnamen absteigend
Standardsortierung entspricht dem gleichen Wert wie in den Artikellistings
Nach dem Aufruf sollte via
unset($this->sSYSTEM->_SESSION['sSort']);
dafür gesorgt werden, dass die ausgewählte Sortierung wieder entfernt wird. Diese würde ansonsten auch standardmäßig für die Listings verwendet werden.
Bestimmung des Limits (3.0.4)
Vor Funktionsaufruf:
$this->sSYSTEM->_GET['sPerPage'] = 5; // 5 Artikel auf einmal
Nach Funktionsaufruf:
unset($this->sSYSTEM->_SESSION['sPerPage']);
Artikel-PDF erstellen
Artikel bewerten
Kommentare:
Artikel kommentieren
Weitere interessante Artikel:
Bestell-Nr.: SW1359
Lieferzeit ca. 5 Tage
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. + Versandkosten*
Kategorien: