Kategorien in den Header und auf jeder Seite anzeigen

Kann mir jemand bitte dabei helfen, den Kategorien-Bereicht von der Startseite (start.tpl) in den Header (_header.tpl) zu bekommen, sodass die Kategorien auf jeder Seite angezeigt werden? Ist das denn möglich und wenn ja wie könnte man das hinbekommen?

Wäre sehr dankbar über jede hilfreiche Antwort.

Hat niemand eine Idee?

Hi

Du hast doch im Admin die Möglichkeit, dies so einzustellen, oder meinst Du etwas anderes (unter: Grundeinstellungen-Einstell.-Shop Frontent: Kategorien-Navigation oben anzeigen)?

Gruss

Michael

Ich meine nicht die Navigation oben, sondern möchte ich den Bereich aus der Startseite (Kategorien), also dort wo man über das Admin-Menü Artikel aus verschiedenen Kategorien zuordnen kann im Header angezeigt bekommen.

Hallo plexus,

ich versteh’s auch noch nicht :frowning:

Willste vielleicht mal einen Screenshot machen?

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Ich habe einen Screenshot gemacht und so soll es aussehen…

Das ist ja eine nette Idee :slight_smile:

Was passiert, wenn Du den entsprechenden Block aus der start.tpl einfach rauskopierst und in den Header stopfst?

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Dann wird er nur angezeigt wenn man sich auf der Startseite befindet, andernfalls kommt folgender Fehler:

Function ‘getCatOfferArticleList’ does not exist or is not accessible! (aList)

und danach springt er wieder direkt zur Startseite (index.php?cl=start&redirected=1)

Gut. Aber schön, dass wir drüber gesprochen haben :slight_smile:

Das heißt, dass die Funktion an dieser Stelle nicht verfügbar ist und mit gettern verfügbar gemacht werden muss. Den hier kennst Du ja schon:http://www.oxid-esales.com/de/resources/forum/entwickler/bestelluebersicht-aus-dem-admin-bereich-im-shop-anzeigen-lassen

oder auch mal den anschauen:http://www.oxid-esales.com/de/resources/forum/developers/accessable-article-data-seems-be-incoherent

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Danke Marco. :slight_smile: Also muss ich wieder ein Modul schreiben?


<?php

class plexus_kategorie extends plexus_kategorie_parent{ public function render() { $ret = parent::render(); $this->_oParent->_aViewData[‘getCatOfferArticleList’]; return $ret; }}


Bei dieser Zeile weiß ich leider nicht wie diese lauten muss:

$this->_oParent->_aViewData[‘getCatOfferArticleList’];

Vllt. kannste mir da nochmal weiterhelfen.

Bin langsam am verzweifeln. Ich bekomms absolut nicht hin!

Also hier die Lösung und meine Herangehensweise gleich dazu:

  1. Blick in die start.tpl and die Stelle wo diese Artikel angezeigt werden. Da finden wir den Aufruf von “$oView->getCatOfferArticleList()” … okok soweit warst du schon, aber jetzt der nächste Schritt

  2. die Methode “getCatOfferArticleList()” wird auf der Instanz “$oView” gerufen. $oView ist immer die Instanz der aktuellen View Klasse. Bei start.tpl ist es start.php. Also die (meistens) gleichnamige *.php Datei im views Ordner.

  3. Wir suchen die Implementierung von “getCatOfferArticleList()” in der Start.ph. Genau das gleiche wollen wir ja machen …

  4. Da wir diese Kategorien nun Shopweit zur Verfügung haben möchen schreiben wir am besten eine Erweitung einer Komponente und was läge näher als die oxcmp_categories zu nehmen.

  5. Dein Code für die Kategorie ist schon ganz richtig aber du wusstest nicht was du in die Variable packen solltest. Ganz einfach kopiere die “getCatOfferArticleList” Methode in die dein Modul (ja in diesem Fall ist es ok zu kopieren :wink: ) und weise dann den Inhalt einer Templatevariablen zu:

$this->_oParent->_aViewData[‘aCatOfferArticleList’] = $this->getCatOfferArticleList();

  1. modul eintragen und im Template folgende foreach Schleife nutzen:

[{foreach from=$aCatOfferArticleList item=actionproduct name=CatArt}]

  1. Ich bin mit meiner viel zu langen Erklärung fertig …

Danke für dein Antwort MaFi. Leider hab ich es trotz deiner Beschreibung immer noch nicht hinbekommen.

Ich habe das Modul jetzt wie folgt geändert:

<?phpclass plexus_oxcmp_categories_articlelist extends plexus_oxcmp_categories_articlelist_parent{ public function render() { $ret = parent::render(); $this->_oParent->_aViewData[‘aCatOfferArticleList’] = $this->getCatOfferArticleList(); return $ret; }}

Im Admin bereich hab ich es dann unter Module eingetragen:

oxcmp_categories => plexus_oxcmp_categories_articlelist

Danach konnte ich jedoch den Shop nicht mehr aufrufen und es kam nur noch eine weiße Seite. Muss ich denn noch etwas aus der start.php in die oxcmp_categories.php kopieren, oder wo liegt mein Fehler?

Du hast warscheinlich Punkt 5 vergessen. Einfach die ganze Methode “getCatOfferArticleList()” in dein Modul kopieren.

Grüße

Mathias

Ja das wirds wohl sein. Wenn ich es richtig verstanden habe, dann soll ich aus der start.php die Methode kopieren. Kannst du mir den Bereich nennen wo ich das genau finde? Wenn ich nach getCatOfferArticleList() suche, dann finde ich 3 Bereiche in der start.php

das hier:

public function getCatOfferArticleList()    {        if ( $this-&gt;_oCatOfferArtList === null ) {            $this-&gt;_oCatOfferArtList = array();            if ( $this-&gt;_getLoadActionsParam() ) {                // "category offer" articles                $oArtList = oxNew( 'oxarticlelist' );                $oArtList-&gt;loadAktionArticles( 'OXCATOFFER' );                if ( $oArtList-&gt;count() ) {                    $this-&gt;_oCatOfferArtList = $oArtList;                }            }        }        return $this-&gt;_oCatOfferArtList;    }

Zeile 363 ff

Ok. Also so sieht jetzt mein Modul aus (plexus_oxcmp_categories_articlelist.php):

<?phpclass plexus_oxcmp_categories_articlelist extends plexus_oxcmp_categories_articlelist_parent{ public function getCatOfferArticleList() { if ( $this->_oCatOfferArtList === null ) { $this->_oCatOfferArtList = array(); if ( $this->_getLoadActionsParam() ) { // “category offer” articles $oArtList = oxNew( ‘oxarticlelist’ ); $oArtList->loadAktionArticles( ‘OXCATOFFER’ ); if ( $oArtList->count() ) { $this->_oCatOfferArtList = $oArtList; } } } return $this->_oCatOfferArtList; }}

Als Modul eingetragen mit: oxcmp_categories => plexus_oxcmp_categories_articlelist

Und heraus kommt folgender Fehler:

Function ‘getCatOfferArticleList’ does not exist or is not accessible! (aList)

Also irgendwo schein ich wohl noch etwas falsch zu machen…

push push push


www.hardwareaktion.com [Shop]