Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Umbau der Bewertungsbox

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Umbau der Bewertungsbox
    am: 22. August 2011, 17:31:34
    Um dem Shop einen neuen Pepp zu verlieren, bin ich gerade dabei die "/boxes/reviews.php" umzubasteln. Bisher funktioniert alles wunderbar und sie wird mir auch direkt in der "product_info.html" angezeigt.

    Nun wäre es eigentlich sinnvoll, die Bewertungssterne des jeweiligen Produkts so anzuzeigen, dass quasi die Gesamtzahl der Sterne geteilt durch die Anzahl der Bewertungen gleich die angezeigten Sterne ergibt.

    Bisher habe ich mich vergebens bemüht die "rating_stars" zu zählen und durch die jeweilige Anzahl der Bewertungen der dazugehörigen "product_id" zu ermitteln.

    Irgendwie nicht mein Tag heute.

    Bis jetzt sieht der Umbau der source/boxes/reviews.php so aus.
    Code: PHP  [Auswählen]
    if ($random_product) {
            $box_content = '
                    <a href="'
    . xtc_href_link(FILENAME_PRODUCT_REVIEWS, 'products_id=' . $random_product['products_id']) . '">' .
                    $random_product['products_name'] . '
                    </a>
                    <br />
                    <a href="'
    . xtc_href_link(FILENAME_PRODUCT_REVIEWS_INFO, 'products_id=' . $random_product['products_id'] . '&amp;reviews_id=' . $random_product['reviews_id']) . '">' .
                    xtc_image('templates/' . CURRENT_TEMPLATE . '/img/stars_' . $random_product['reviews_rating'] . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $random_product['reviews_rating'])) . '
                    </a>'
    ;
    } elseif ($product->isProduct()) {
             $box_content = '<p><a href="' . xtc_href_link(FILENAME_PRODUCT_REVIEWS_WRITE, xtc_product_link($product->data['products_id'],$product->data['products_name'])) . '">' . BOX_REVIEWS_WRITE_REVIEW .'</a></p>';
    }
     

    Jemand eine Idee? Vielleicht sollte man diese Lösung dann auch komplett ins Shopsystem einfließen lassen.

    Gruß
    Ronny

    Linkback: https://www.modified-shop.org/forum/index.php?topic=14689.0

    mouseworx

    • Schreiberling
    • Beiträge: 254
    • Geschlecht:
    Re: Umbau der Bewertungsbox
    Antwort #1 am: 22. August 2011, 18:07:33
    Hi Ronny,

    also irgendeine Funktion die einen Durchschnittswert errechnet kann ich in deinem Code nicht finden, aber versuch es mal mit:

    Code: PHP  [Auswählen]
    ...
    } elseif ($product->isProduct()) {
            $rating_query = xtc_db_query("select avg(r.reviews_rating) as av_rated
                                            from "
    .TABLE_REVIEWS." r,
                                                 "
    .TABLE_REVIEWS_DESCRIPTION." rd
                                           where r.products_id = '"
    .$product->data['products_id']."'
                                             and rd.languages_id = '"
    .(int)$_SESSION['languages_id']."'");

            $rating = xtc_db_fetch_array($rating_query);
            $average = round($rating['av_rated']);

            $box_content = $product->data['products_name'] . '<br />' . xtc_image('templates/' . CURRENT_TEMPLATE . '/img/stars_' . $average . '.gif' , sprintf(BOX_REVIEWS_TEXT_OF_5_STARS, $average));

    }

    ... ungetestet

    Grüße
    Sebastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Umbau der Bewertungsbox
    Antwort #2 am: 22. August 2011, 18:37:31
    Danke Sebastian funktioniert wunderbar. Ich hatte meinen Schrottcode, weil ich es die ganze Zeit mit SELECT SUM probiert hatte, wieder entfernt.

    Dein Codeschnippsel ist die die richtige Lösung.

    Gruß
    Ronny

    mouseworx

    • Schreiberling
    • Beiträge: 254
    • Geschlecht:
    Re: Umbau der Bewertungsbox
    Antwort #3 am: 22. August 2011, 18:48:25
    Re Ronny,

    fein, freut mich weil ungetestet - die Abfrage auf die TABLE_REVIEWS_DESCRIPTION kannst Du auch vergessen, also das reicht:

    Code: PHP  [Auswählen]
            $rating_query = xtc_db_query("select avg(reviews_rating) as av_rated
                                            from "
    .TABLE_REVIEWS."
                                           where products_id = '"
    .$product->data['products_id']."'");
     

    Eine Durchschnittsbeschreibung kann es ja nicht geben ... oder sollte man einen Durchschnittswert aus den benutzten Buchstaben bilden und den als Durchschnittsbeschreibung ausgeben?  :-D

    Grüße
    Sebastian

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Umbau der Bewertungsbox
    Antwort #4 am: 22. August 2011, 20:59:27
    Die überflüssige TABLE_REVIEWS_DESCRIPTION hatte ich aus dem Query schon herausgenommen, als ich deine Lösung in meinen Quellcode eingefügt habe.

    Gruß
    Ronny
    Managed Server
    8 Antworten
    3243 Aufrufe
    16. August 2010, 10:52:31 von flipstar08
    16 Antworten
    7552 Aufrufe
    21. November 2010, 18:09:57 von xtc-user09
    3 Antworten
    2688 Aufrufe
    21. Juni 2010, 20:08:42 von xtc-user09
    7 Antworten
    4232 Aufrufe
    09. Juli 2011, 15:01:45 von hechicero