Eigenes Modul: Zusammenfassung aller Bewertungen auf start.tpl

Hallo zusammen.

Ich versuche mich gerade an meinem ersten Modul. Die Tutorials habe ich bereits durch. Allerdings habe ich immer noch einige Verständnisprobleme. z.B. ist es mir nicht klar, wann ich eine eigene View erzeugen muss. Aber das nur so am Rande. Mein eigentliches Problem ist, dass ich keinen wirklichen Ansatz habe um folgendes Problem zu lösen:

Ich möchte gerne eine durchschnittliche Darstellung aller Shopbewertungen auf der Startseite anzeigen. Hierzu wollte ich Part1 des Modul-Tutorials verwenden. Allerdings benötige ich hierzu wohl die detail-View, welches es auf der Startseite nicht gibt bzw. nicht geladen wird (zumindest falls ich das richtig verstanden habe).

Hat jemand einen besseren Ansatz bzw. eine Idee für mich?

Schon jetzt vielen Dank.

quick and dirty: ich habe nun folgendes in der start.php stehen. Glücklich bin ich mit dieser Lösung aber nicht…


    public function getReviews()
    {

		$sQuery  = "select avg(OXRATING) from oxratings";
        $oResult = oxDb::getDb()->Execute($sQuery);
		
        return number_format($oResult->fields[0],1)." / 5";
    }

Hat jemand einen Verbesserungsvorschlag?

Grundsätzlich sollte halt zunächst mal der code von start.php nach einem meinreview_start.php wandern, also in eigenes Modul …
Was wolltest du jetzt genau als Tip ? die reviews eleganter auslesen, oder was ?

Ich weiß nicht wie ich eine view überladen kann. ich würde ja gerne eine eigene datei erzeugen, mir ist nur unklar wie. eine view ist doch kein modul!?

wie also kann ich meiner class sagen, von wem sie erbt!? Hierzu benötige ich einen Tipp :slight_smile:

Ein Modul überlädt z.B. einen View oder eine Core Datei.

In den Moduleinstellungen im Adminmenü (Stammdaten/Grundeinstellungen/System/) muss man dann halt den view start.php überladen:

start => mein_modul/meinreview_start

dann braucht min in modules/mein_modul/meinreview_start.php

class meinreview_start extends meinreview_start_parent
{
    public function getReviews() 
    { 

        $sQuery  = "select avg(OXRATING) from oxratings"; 
        $oResult = oxDb::getDb()->Execute($sQuery); 
         
        return number_format($oResult->fields[0],1)." / 5"; 
    }  
}

also gibt dort dann die zusätzlich benötigte Funktion ein, und überlebt dann auch so schmerzfrei Updates

hey. danke! ich wusste nicht, dass ich eine view in form eines moduls überladen kann. Ich hätte das ja auch einfach versuchen können :slight_smile:

Es funktioniert jedenfalls: Danke!