Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: MODUL: Rezensionsaufgliederung nach vergebenen Sternen

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #60 am: 11. Februar 2020, 07:14:43
    Vielen Dank für die tolle Erweiterung der Erweiterung  :thumbs:
    Macht wirklich was her und der Einbau funktioniert super einfach :-)

    Das Javascript für die Höhe in den Review-Tabs hat bei mir auch nicht gegriffen (Karl's Bootstrap4). Ich habe es per CSS auf 500px gestellt. Dann hat man einige Bewertungen im Sichtbereich und wenn man mehr möchte, scrollt man eben. Wenn ein Produkt 100 Bewertungen oder mehr hat sieht es auch schöner aus finde´ich (nur meine Meinung).

    LG
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #61 am: 11. Februar 2020, 07:32:56
    Das mit den Review-Tab hab ich ehrlich gesagt auch nur im tpl_modified_responsive getestet und dachte mir, vielleicht wollen auch weitere Nutzer darauf zurückgreifen. Ich schau mir das die Tage nochmal für bootstrap3/bootstrap4 genauer an - vielleicht gibts da ja auch einen Weg.

    Viel Freude mit dem Modul & LG

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #62 am: 11. Februar 2020, 08:30:14
    Was ich sehr gut finde, dass nun beide Bewertungsarten benutzt werden können. Trusted Shops und "shopintern". Da ich ja die internen Bewertungen direkt oben auch einsehen kann, ist es nicht mehr "falsch", dass die Anzahl der shopinternen Bewertungen da steht, selbst wenn ich Trusted Shops Produktbewertungen aktiviere. Unten im Review Tab erscheinen dann die Trusted Shops Bewertungen.

    LG

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #63 am: 11. Februar 2020, 08:56:44
    Schön, das auch mal woanders eingebaut zu sehen. :-) Gefällt mir, wie du das umgestylt hast. ;-)

    Diesen Aspekt bzgl. Trusted Shops hattest du ja bereits am Anfang schon angesprochen - tatsächlich ist das Problem aber nur zufällig damit gelöst. Geplant war das nämlich nicht.  :lol:

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #64 am: 11. Februar 2020, 09:07:43
    Ich hatte letztens schon Screenshots an deine Email gesendet. Wir hatten da ja schonmal Kontakt. Aber leider kam am nächsten Tag eine Undelivered Mail zurück :)

    LG

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.742
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #65 am: 11. Februar 2020, 09:27:05
    ...
    ... jetzt ist das Modul aber abgeschlossen und es gibt nur noch Support.
    ...

    Vielleicht noch ein paar Anregungen ?

    An manchen Stellen könnte man noch Code in folgende if-Clause einschließen:
    Code: PHP  [Auswählen]
    if(defined('MODULE_PRODUCT_AWIDSRATINGBREAKDOWN_STATUS') && MODULE_PRODUCT_AWIDSRATINGBREAKDOWN_STATUS == 'true') {
     CODE
    }

    Damit würde der Code nur dann geladen/ausgeführt wenn die Klassenerweiterung auch aktiviert ist.

    Durch ein touch() * oder Leeren der tpl_plugins.min.css an geeigneten Stellen in der Klassenerweiterung
    - nämlich um die Komprimierung neu zu erzwingen -
    kann auch das Array $css_array in der general-bottom.css.php konditional erweitert oder reduziert werden.
    (Natürlich indem man das genannte Array ebenfalls wie oben aufgeführt abhängig vom Modul-Status konditional erweitert.)

    An geeigneter Stelle hieße im __construct()
    Code: PHP  [Auswählen]
            //in case of status change empty the compressed files to force new generation
            if(isset($_GET['module']) && $_GET['module'] == $this->code) {
                if(isset($_GET['action']) && $_GET['action'] == 'save') {
                    if(COMPRESS_STYLESHEET == 'true') file_put_contents(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/css/tpl_plugins.min.css', '', LOCK_EX);
                }
            }

    in der Methode install():
    Code: PHP  [Auswählen]
            //in case of status change empty the compressed files to force new generation
            if(COMPRESS_STYLESHEET == 'true') file_put_contents(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/css/tpl_plugins.min.css', '', LOCK_EX);

    in der Methode remove():
    Code: PHP  [Auswählen]
            //in case of status change empty the compressed files to force new generation
            if(COMPRESS_STYLESHEET == 'true') file_put_contents(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/css/tpl_plugins.min.css', '', LOCK_EX);

    Gruß,
    noRiddle

    * touch() müsste auf eine immer im Array vorhandene Datei ausgeführt werden, weshalb das Leeren der komprimierten Datei besser ist.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.853
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #66 am: 11. Februar 2020, 12:04:06
    Nur mal zwei Fragen am Rande:
    1. können die Sterne auch im product_listing angezeigt werden?

    Dann wäre es zumindest "durchgängig" im Shop.

    2. ist das Rating auch nach "Prozenten" möglich - aktuell wird immer auf volle Sterne gerundet, oder?
    Also dass beispielsweise auch eben 3,5 oder 4,7 Sterne farbig sind? Oder eben zumindest halbe?
    so wie hier zum Beispiel:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Das macht es noch ein wenig professioneller und genauer.

    Denn gerade sowas wirkt irgendwie "gefakt" wenn viele Bewertungen auch mit 2, 3 oder 4 Sternen abgegeben worden sind und die Gesamtbewertung dennoch bei 5 Sternen liegt: MODUL: Rezensionsaufgliederung nach vergebenen Sternen

    Grüße
    Dominik

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #67 am: 11. Februar 2020, 13:05:40
    zu 1)
    Dazu hätte ich noch ein zusätzliches Modul, welches die Sterne ins Produktlisting bringt. Das will ich hier aber nicht hochladen, da es nicht zu verschenken ist. Dir würde ich dankeshalber zukommen lassen, weil du das hier vorliegende Modul mit einer Idee unterstützt hast. Die Frage ist nur, wie kommen wir da ins Gespräch?  :mhhh:

    zu 2)
    Ich bin bei diesem Modul dem modified-Standard gefolgt, wo auf ganze Zahlen gerundet wird. Deinen Einwand kann ich aber nachvollziehen, wenn ich mir das verlinkte Screenshot anschaue. ;-)

    Sowas wäre theoretisch mit CSS machbar, hab ich mich aber noch nie dran versucht.

    Die Sterne, auf die du dich beziehst, gehören aber zum Shop und Template dazu, sind also gar nicht wirklich eine Baustelle für das Modul. Die müsste man entweder über eine Klassenerweiterung oder durch ein Smarty-Plugin austauschen (bzw. durch einen Modifier modifizieren) - oder Hand an die Corefiles legen und das hauseigene Avarage-Rating umpolen.

    Ich hab aber nicht vor, das Modul hier weiter auszubauen. Sollten wir wie zu 1) gefragt irgendwie ins Gespräch kommen, kann ich dir vielleicht zu einem späteren Zeitpunkt mal ein paar Tipps dazu geben, wenn ich das in meiner Freizeit mal ausgetestet habe.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.742
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #68 am: 11. Februar 2020, 13:30:21
    @voodoopupp

    Zu Punkt 1.
    Was awids' Erweiterung betrifft müsste das mittels
    Code: XML  [Auswählen]
    {$module_data.BREAKDOWN}
     
    ohne weitere Anpassungen (außer evtl. CSS) gehen.

    Allerdings steht die Durchschnittsbewertung nicht im Produk-Listing zur verfügung.
    Um das zu bewerkstelligen müsste die Klassenerweiterung erweitert werden, aber dazu hat awids dir ja bereits ein Angebot gemacht.

    Zu Punkt 2.
    Das ist ein Manko des Shops an sich und hat nichts mit awids' Erweiterung zu tun.
    Grund ist das round() mit precision 0 in der Funktion getReviewsAverage() in der /includes/classes/product.php.
    Das update-sicher zu ändern ginge zwar, es würde jedoch 1. noch eine Datei in /includes/extra/modules/product_info_end/ benötigt und 2. würde eine Query vergeblich gemacht
    - nämlich die Query aus genannter Funtion, die dann nochmals gemacht werden müsste -
    was nicht schön wäre.

    Wenn du's ausprobieren möchtest (nicht getestet):
    In /includes/extra/modules/product_info_end/ eine Datei mit Namen recalc_avg_rating.php legen mit folgendem Inhalt:
    Code: PHP  [Auswählen]
    <?php
    /**************************************************
    * file: recalc_avg_rating.php
    * path /includes/extra/modules/product_info_end/
    * use: recalculate average rating for product
    *
    * (c) 02-2020 noRiddle
    **************************************************/


    $recalc_avg_rev_qu = xtc_db_query("SELECT avg(reviews_rating) AS avg_rating
                                         FROM "
    .TABLE_REVIEWS."
                                        WHERE products_id='"
    .(int)$pID."'
                                          AND reviews_status = '1'"
    );

    $recalc_avg_rev_arr = xtc_db_fetch_array($recalc_avg_rev_qu);

    $recalc_avg_rev = round($recalc_avg_rev_arr['avg_rating'], 2);

    if(TEMPLATE_ENGINE == smarty_2) {
        $info_smarty->clear_assign('PRODUCTS_AVERAGE_RATING');
    } else if(TEMPLATE_ENGINE == smarty_3) {
        $info_smarty->clearAssign('PRODUCTS_AVERAGE_RATING');
    }

    $info_smarty->assign('PRODUCTS_AVERAGE_RATING', $recalc_avg_rev);
    ?>
     

    Danach steht in {$PRODUCTS_AVERAGE_RATING} eine gerundete Kommazahl mit einer Nachkommastelle zur Verfügung, was bedeutet, daß es genauestens einen halben Stern geben kann. in FontAwesome gibt es ja auch halbe Sterne.
    Im Template muß natürlich noch angepasst werden.

    Gruß,
    noRiddle

    DerNachbar

    • Viel Schreiber
    • Beiträge: 501
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #69 am: 11. Februar 2020, 13:50:49
    Du könntest ja mal schauen, ob du in der general.js.php schon irgendwo eine so ähnliche Zeile vorfindest:

    Code: PHP  [Auswählen]
    <?php if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO )) { ?>

    und dann den Code
    [...]

    direkt danach dort mit einfügen.
    Besagte Zeile habe ich nicht. Nur define('DIR_TMPL_JS', 'templates/'.CURRENT_TEMPLATE. '/javascript/');
    Habe es danach mal eingefügt. Verursacht eine weisse Seite bei Aufruf der Domain.

    DerNachbar

    • Viel Schreiber
    • Beiträge: 501
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #70 am: 11. Februar 2020, 13:55:20

    @DerNachbar
    Ja, sieht auch ohne Toggle bei dir schon prima aus.  :thumbs:
    Hast du bzgl. des JavaScript mal die Tipps von Tante Uschi in den letzten Beiträgen ausprobiert?

    Da dein Template responsive ist, empfehle ich dir, die Dateien aus dem Template-Ordner tpl_modified_responsive zu übernehmen und in der Datei /templates/tpl_modified_*/module/popup_reviews_filter.html alle vorkommen von

    Code: PHP  [Auswählen]
    <i class="fas fa-star

    in

    Code: PHP  [Auswählen]
    <i class="fa fa-star

    zu ändern. (Font-Awesome 4 scheint ja schon in den Einstellungen aktiviert zu sein.) Dann klappt das auch responsive. ;-)
    Es gibt keine derartigen vorkommen in dieser Datei  :whistle:

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #71 am: 11. Februar 2020, 13:58:49
    Nicht im Ordner templates/tpl_modified/, aber im Order templates/tpl_modified_responsive/ meines Moduls. Diese (und die CSS-Datei aus dem Ordner) sollst du in dein tpl_modified überspielen und anpassen. ;-)

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #72 am: 11. Februar 2020, 14:03:28
    Besagte Zeile habe ich nicht. Nur define('DIR_TMPL_JS', 'templates/'.CURRENT_TEMPLATE. '/javascript/');
    Habe es danach mal eingefügt. Verursacht eine weisse Seite bei Aufruf der Domain.

    Dann erstell doch eine JS-Datei mit dem Inhalt

    Code: Javascript  [Auswählen]
        $(function() {
          $('#avg_container').click(function() {
            $('.avg_container').slideToggle('slow');
            $('.toggle_cart').slideUp('slow');
            $('.toggle_wishlist').slideUp('slow');
            ac_closing();
            return false;
          });
          $("html").not('.avg_container').bind('click',function(e) {
            $('.avg_container').slideUp('slow');
          });
        });  

    und füge sie nach dem Beispiel der anderen Dateien mit ein.

    DerNachbar

    • Viel Schreiber
    • Beiträge: 501
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #73 am: 11. Februar 2020, 14:05:40
    Nicht im Ordner templates/tpl_modified/, aber im Order templates/tpl_modified_responsive/ meines Moduls. Diese (und die CSS-Datei aus dem Ordner) sollst du in dein tpl_modified überspielen und anpassen. ;-)
    Erledigt :) Aber nun fehlen im Popup die Sterne.

    awids

    • Experte
    • Beiträge: 3.790
    • Geschlecht:
    Re: MODUL: Rezensionsaufgliederung nach vergebenen Sternen
    Antwort #74 am: 11. Februar 2020, 14:13:19
    Ja, auch gerade gesehen. ;-)

    Ersetze in der Datei /templates/tpl_modified/module/popup_reviews_filter.html folgende Zeile:

    Code: PHP  [Auswählen]
    <link rel="stylesheet" type="text/css" href="{$tpl_path}css/fontawesome-all.css" />

    durch diese:

    Code: PHP  [Auswählen]
    <link rel="stylesheet" type="text/css" href="{$tpl_path}css/font-awesome.css" />
    39 Antworten
    19923 Aufrufe
    01. März 2014, 21:06:39 von mollvision
    1 Antworten
    3215 Aufrufe
    06. Februar 2011, 04:14:25 von Tomcraft
    0 Antworten
    1179 Aufrufe
    06. April 2016, 22:51:41 von ttsarche