Reihenfolge der Banner / Slider

Hallo zusammen. Ich hätte meine Banner gerne in einer bestimmten Reihenfolge abgespielt. Habe dafür auch diese Anleitung befolgt: http://www.visionandfacts.de/index.php/ … rrotation/. Leider hat sie trotz exakter Befolgung nicht funktioniert. Kann jemand weiterhelfen?

Hallo, seitens Shopware ist aktuell nicht vorgesehen, die Banner in einer Reihenfolge vorzugeben/anzuordnen. Die Anpassung von der genannten Seite habe ich nicht getestet/geprüft. Wurde die Anpassung 1zu1 so umgesetzt und im Anschluss die neu myMarketing.php in der s_core_factory definiert? Hast du geprüft, ob der neue Code aus der myMarketing.php ausgeführt wird bzw. die Datei überhaupt geladen wird? PS: Die Anpassung ist auch schön älter. Daher sollte die aktuelle Funktion aus der sMarketing.php genutzt werden. Ich glaube auch, dass es sich hier um einen Fehler handelt im Tutorial statt <?php include ("$path/sArticles.php");

müsste es sein

<?php include ("$path/sMarketing.php");

Die Datei myMarketing.php sollte daher eher so aussehen:

[code]

<?php include ("$path/sMarketing.php"); class myMarketing extends sMarketing { /** * Get banners to display in this category * @param int categoryID of the current category * @return array Contains all information about the banner-object * @access public */ public function sBanner($sCategory, $limit=1) { $limit = (int) $limit; $sql = " SELECT * FROM s_emarketing_banners WHERE categoryID=? AND (valid_from <= NOW() OR valid_from='0000-00-00 00:00:00') AND (valid_to >= NOW() OR valid\_from='0000-00-00 00:00:00') ORDER BY description LIMIT $limit "; $getBanners = $this-\>sSYSTEM-\>sDB\_CONNECTION-\>GetAll($sql, array($sCategory)); if(empty($getBanners[0])) { return false; } foreach ($getBanners as &$getAffectedBanners) { if(!empty($getAffectedBanners['liveshoppingID'])) { $tmpLive = array('liveshoppingID' =\> $getAffectedBanners['liveshoppingID']); $tmpLive = $this-\>sSYSTEM-\>sMODULES['sArticles']-\>sGetLiveShopping('fix', 0, $tmpLive, true); if(!empty($tmpLive)){ $getAffectedBanners['liveshoppingData'] = $tmpLive['liveshoppingData'][0]; } } if (!empty($getAffectedBanners["img"])){ $getAffectedBanners["img"] = $this-\>sSYSTEM-\>sPathBanner.$getAffectedBanners["img"]; } if (!preg\_match("/http/",$getAffectedBanners["link"]) && !empty($getAffectedBanners["link"])) { $getAffectedBanners["link"] = "http://".$getAffectedBanners["link"]; } } if ($limit == 1 ) { $getBanners = $getBanners[0]; } return $getBanners; } } ?\> [/code] [u]In der Datenbank-Tabelle s\_core\_factory muss der Eintrag wie folgt aussehen:[/u] description: M[b]arketing-Funktionen[/b] basename: [b]sMarketing[/b] basefile: [b]sMarketing.php[/b] inheritname: [b]myMarketing[/b] inheritfile: [b]myMarketing.php[/b]
2 Likes

Es wurde alles 1zu1 ausgeführt und geändert. Geprüft wurde es aber nicht - ich weiss nicht wie ich prüfen kann, ob die Datei geladen wird. Ich habe eben deinen angepassten Code für die myMarketing verwendet und die Datei überschrieben, hat aber leider auch nicht geklappt.

Hallo, ich habe das oben ja korrigiert und an die neue Version angepasst. Das Tutorial von der anderen Seite ist falsch! Mein Code habe ich jetzt gerade geprüft und das funktioniert damit mit der Reihenfolge.

Ja, Hammer! Es funktioniert. Ich hatte nur die neuen Einträge in der Datenbank übersehen. 1A! Vielen Dank dafür :slight_smile:

Danke! Mit dem neuen Code klappt es genau so, wie gewünscht. Im Tutorial steht es nur etwas versteckt - aber die Reihenfolge richtet sich dann nicht nach der Anlage im Backend, sondern nach dem Titel des jeweiligen Banners. Am besten einfach Zahlen voranschreiben, dann kommt man nicht durcheinander. z.B.: 3. Zündspulenvorschalter 1. Badvorleger 2. Autoschwamm 4. Dosenöffner (dann wird 1,2,3,4 in dieser Reihenfolge angezeigt, auch wenn im Backend die Auflistung 3,1,2,4 ist.)