Slider / Promobanner

Hallo,
wie kann ich den Slider auf allen Seiten im Shop darstellen! Standardseitig wird er ja nur auf der Startseite angezeigt!

Oder kann der Nivo Slider das von Haus aus besser?

Besten Dank

nein, Nivo kann es nicht besser, weil das eine Shopfunktion ist.

Da müsste man die Funktion getBanners() aus views/start.php entweder in oxview.php oder oxubase.php kopieren, was wiederum beim, nächsten Update überschrieben wird.

oder es etwas umständlicher machen, wie es hier beschrieben wird:


in ein Modul auslagern und damit dann die oxView erweitern.


$this->aModules =
  array(‘oxview’ > ‘deinModul’
);

Ich nutze Oxid 4.5.8, kann es sein das die Datei views/start.php dort so nicht vorhanden ist?

@vanilla thunder

Ich weiss leider nicht bei deinem ersten Vorschlag, in welcher Zeile ich die Funktion getBanners kopieren muss damit es funktioniert. Habe beide Dateien ausprobiert, wobei ich den Code jeweils ans Ende kopiert habe! Gehe davon aus das es falsch ist, da nach /tmp leeren keine Veränderung zu sehen war. Kannst du deine Aussage bitte noch etwas spezifizieren!

Besten Dank

ans Ende - ja, aber noch vor die letzte geschweifte Klaammer }, dann sieht es etwa so aus:


    /**
     * Returns active banner list
     *
     * @return objects
     */
    public function getBanners()
    {

        $oBannerList = null;

        if ( $this->getConfig()->getConfigParam( 'bl_perfLoadAktion' ) ) {
        $oBannerList = oxNew( 'oxActionList' );
        $oBannerList->loadBanners();
        }

        return $oBannerList;
    }
}

In beiden Datein habe ich es so gemacht jedoch ohne den gewünschten Erfolg! Weiterhin wird der Slider nur auf der Startseite angezeigt. Fehlt eventuell ein Arbeitsschritt? Das /TMP wurde jedesmal gelöscht!

Besten Dank

ah ja, geh mal in die out/azure/tpl/layout/header.tpl
da gibts unten


[{if $oView->getClassName()=='start' && $oView->getBanners()|@count > 0 }]
    <div class="oxSlider">
        [{include file="widget/promoslider.tpl" }]
    </div>
[{/if }]

das rote wegmachen und speichern :slight_smile:

Das war es! Vielen, vielen Dank! Das bringt mich ungemein weiter! Wenn ich das richtig sehe und verstehe könnte ich nun weitere Seiten angeben um die Ausgabe des Promoslider nur auf bestimmten Seiten zu integrieren!

richtig, mit getClassName() bekommst du die aktuelle Klasse, aber das ist nicht gleich dem Seitennamen.

Z.B: bei den CMS Seiten ist die Klasse "content"
schreib einfach

<h1 style="color:red>[{$oView->getClassName()}]</h1>

irgendwohin und du kannst sehen welche klasse es aktuall ist. Aber vergiss nicht wieder zu entfernen bevor der Shop online geht :slight_smile: