Hallo, wie schaffe ich es eigentlich mehrere Banner oder „Einkaufswelten“ auf der Startseite anzeigen zu lassen. Gibt es da irgendwo einen Einstellungspunkt in der Config? Aktuell wird mir nur immer 1 Banner angezeigt … 2 sind angelegt und die rotieren dann abwechselnd. Ich würde hier aber gerne 3 oder 4 Banner anzeigen lassen welche dann auch rotieren. Danke für die kurze Antwort. schöne Grüße Markus
Hi … mmmh… nachdem ich mich jetzt nochmal ein wenig weiter durchgewühlt habe stelle ich fest dass das wohl im Standard gar nicht funktioniert mit mehreren Bannern … Zuständig ist wohl dieser Teil aus der Index_home … NUR … da gibts keine FOREACH … bedeutet hier ist wohl nur ein Banner vorgesehen warum auch immer … Gibt es hierfür ein ADDON oder CODESCHNIPSEL damit ich sowas realisieren kann? [code] {if $sBanner} {if $sBanner.extension==“swf”}
{elseif $sBanner.liveshoppingData} {include file=“articles/liveshopping/include_liveshopping.tpl” liveArt=$sBanner.liveshoppingData} {else} {if $sBanner.link == “#” || $sBanner.link == “”}
{else}{/if} {if $sBanner.img} {/if} {if $sBanner.link == “#” || $sBanner.link == “”}
{else}{/if} {/if} {/if}[/code] Danke für eine Antwort Markus
Hallo Markus, wir realisieren das über die Kategorie Einkaufswelten „Promotion“ und hinterlegen hier unsere eigenen Bilder - bis hin zu den Unterkategorien: Viele Grüße Steffen
Hi Steffen, danke für den Hinweis … aber das ist nicht wirklich das was ich gerne hätte. ich möchte da einfach irgendwelche Promotion einfügen können unabhängig von Kategorien und Artikeln … zum Teil möchte ich da auch auf eine Content-Seite verlinken. Wenn ich das mit den Kategorien mache wird das aus meiner Sicht beim Handling alles unübersichtlich … vor allem weil sich die Banner wöchentlich ändern werden. So gehe ich in die Kategorie „Deutsch“ und sehe da gleich auf einen Blick was da alles integriert ist. Theoretisch kann das kein Akt sein hier eine FOREACH zu integrieren … ich kann mir gar nicht vorstellen, dass da nicht schon vorher jemand so was haben wollte. Optimalerweise würde es dann einfach im Admin bei den Bannern noch eine Einstellung geben … „Rotieren“ oder „Alle anzeigen“ … das wäre doch mal was gescheites Ich bin mal gespannt ob es hier Hilfe gibt Schöne Grüße Markus
Hallo Markus, das geht doch auch mit Einkaufswelten. Dort kannst Du auch unter Deutsch so viele Banner (eigenes Bild) einstellen mit Zeitangabe und Link wie Du willst! Die erscheinen dann unter dem Banner der Rotiert! Oder Du mußt den Überblendeffekt entfernen, um wöchentlich verschiedene Banner anzeigen zu lassen. Ich hoffe ich habe Dich richtig verstanden!!! Gruß artep
Hi artep, dass ich da mehrere Banner einstellen kann welche rotieren ist klar … ich will aber nicht immer nur einen einzigen anzeigen … ich würde geren 4 oder 5 untereinander anzeigen … und das geht nicht schöne Grüße Markus
Hi … sorry … aber ich wäre dankbar für eine Antwort. Gibts denn eine kostenpflichtige Lösung? Es soll ja nicht an ein paar Euros scheitern. Schöne Grüße Markus
Hey, also standardmäßig ist das nicht möglich, da immer nur ein Banner je Request zurückgegeben wird. Das anzupassen ist aber relativ einfach. Du müsst im Verzeichnis core/class/inherit/ eine myMarketing.php anlegen und die über die Tabelle s_core_factory im System registrieren. (Bei Zeile sMarketing => inheritname = myMarketing, inheritfile = myMarketing.php) Die Datei sieht vom Code dann wie folgt aus: [code]<?php include ("$path/sMarketing.php");
class myMarketing extends sMarketing
{
function sBanner($sCategory){
$sToday = date(„Y-m-d H:i:s“);
$limit = 5;
$getAffectedBanners = $this->sSYSTEM->sDB_CONNECTION->GetAll(" SELECT img, link, link_target, description, extension, liveshoppingID FROM s_emarketing_banners WHERE categoryID=? AND ( (valid_from <= now() AND valid_to >= now()) OR (valid_from=‚0000-00-00 00:00:00‘ AND valid_to=‚0000-00-00 00:00:00‘) ) ORDER BY rand() LIMIT $limit „,array($sCategory)); if(empty($getAffectedBanners[0][„img“])) return false; foreach ($getAffectedBanners as $key => $banner){ if(!empty($getAffectedBanners[$key][‚liveshoppingID‘])) { $tmpLive = array(‚liveshoppingID‘ => $getAffectedBanners[$key][‚liveshoppingID‘]); $tmpLive = $this->sSYSTEM->sMODULES[‚sArticles‘]->sGetLiveShopping(‚fix‘, 0, $tmpLive, true); if(!empty($tmpLive)){ $getAffectedBanners[$key][‚liveshoppingData‘] = $tmpLive[‚liveshoppingData‘][0]; } } if (!empty($getAffectedBanners[$key][„img“])){ $getAffectedBanners[$key][„img“] = $this->sSYSTEM->sPathBanner.$getAffectedBanners[$key][„img“]; } if (empty($getAffectedBanners[$key][„link“])) $getAffectedBanners[$key][„link“] = „“; if (!preg_match(“/http/",$getAffectedBanners[$key][„link“]) && !empty($getAffectedBanners[$key][„link“])){ $getAffectedBanners[$key][„link“] = „http://“.$getAffectedBanners[$key][„link“]; }elseif (empty($getAffectedBanners[$key][„link“])) { $getAffectedBanners[$key][„link“] = „#“; } } return $getAffectedBanners; } } ?> [/code] Anschließend müsstest du den Banner-Code in der Storefront so verändern, dass mit einer Foreach-Schleife gearbeitet wird und mehrere Banner ausgegeben werden können. Über das $limit ganz zu Anfang der Funktion kannst du steuern wie viele Banner pro Request aus der Datenbank abgefragt werden! Habe den Code jetzt nicht getestet, sollte aber funktionieren!
Hallo Stefan, bingo … das wars … funktioniert wunderbar Danke schön. Markus
Und wieder ein Beispiel für den tollen und kostenlosen Service der Shopware Danke!
Hi … [quote=“eintickbesser.de”]Und wieder ein Beispiel für den tollen und kostenlosen Service der Shopware Danke![/quote] kann ich noch nicht ganz beurteilen … bisher kann ich aber nicht klagen @Stefan Eine Anmerkung bzw. Frage habe ich aber doch noch. Wenn ich das jetzt richtig interpretiere funktioniet das ganze für das Marketing/Banner Modul. Bekommt man das auch irgendwie umgebogen dass es für die Einkaufswelten funktioniert? Dort habe ich viel besser die Möglichkeit die Banner zu plazieren. Momentan ist es so, dass ich keine Banner bzw. “Eigene Bilder” angezeigt bekomme welche ich in den Einkaufswelten in der Rubrik “Deutsch” hinterlege. Und wenn ich das alles so richtig verstanden habe dann sollten ja die Promotions welche in der Rubrik Deutsch hinterlegt werden auf der Startseite angezeigt werden … oder muss ich da noch was anderes beachten? Welche Templatedatei ist eigentlich zuständig um auf der Startseite die “Einkaufswelten” anzuzeigen … ist das die index_home.tpl? Danke schonmal für die Hilfe. Schöne Grüße Markus
Hey, zunächst einmal müsste man klären, warum bei dir auf der Startseite die Banner / Einkaufswelten nicht angezeigt werden? Verantwortlich für die Anzeige auf der Startseite ist die index/index_home.tpl dort die Zeilen 53 bis 61: {foreach from=$sOffers item=offer key=key name="counter"} {if $offer.mode == "gfx"} {include file="articles/article\_box\_img.tpl" sArticle=$offer} {elseif $offer.mode == "livefix" || $offer.mode == "liverand" || $offer.mode == "liverandcat"} {include file='articles/liveshopping/include\_liveshopping.tpl' liveArt=$offer.liveshoppingData} {else} {include file="articles/article\_box\_3col.tpl" sArticle=$offer} {/if} {/foreach}
Die Anzeige selbst ist nicht an weitere Bedingungen geknüpft, sollte also, sofern die Einkaufswelten korrekt angelegt worden sind funktionieren. Schick am besten mal einen Screenshot aus dem Admin-Panel, wie du konkret die “Eigenen Bilder” dort eingestellt hast. Ansonsten wäre auch ein Dump des sOffers Arrays hilfreich. Das kannst du erzeugen, indem du in der Datei inherit/myCore.php, Funktion sCustomRenderer ganz zu Ende der Funktion vor dem return $sRender; folgendes einfügst: print\_r($sRender['variables']['sOffers']; exit;
Dann sollte er dir beim Aufruf der Startseite direkt ein assoziatives Array ausgeben, welches du bitte hier in diesen Thread einfügst Achtung! Den Code danach direkt wieder entfernen! Alternativ kannst du dir das ganze auch über die FirePHP-Extension ansehen (Siehe Wiki / Tutorial) und den Dump daher ziehen.
Hi Stefan, Gnade … wenn man so doof ist und einen Teil vom Code nicht mit in die neue Datei kopiert muss man sich nicht wundern wenn da nichts angezeigt wird :quite: Aber ein Gutes hat es ja … so langsam blicke ich da durch Danke für den Wink mit dem Zaunpfahl. Markus