eigenes Ribbon erstellt, nach Update auf 13.3.3 funktioniert es nicht mehr :(

Thema wurde von Liberty, 9. September 2019 erstellt.

  1. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    Hallo zusammen,

    ich habe unter der GX2 3.11.2 mir ein eigenes Ribbon gebaut indem ich die function.product_ribbons.php im Honeygrid-Template um eine eigene Funktion erweitert habe (inkl. passender Einträge in den scss und css-Dateien). Es hat jetzt wunderbar funktioniert bis ich am Wochenende den Shop auf 13.3.3 upgedatet habe.

    Ich habe alle gemachten Änderungen an die neue Version angepasst aber kurioserweise scheint er die Ribbon-Klassen nicht mehr zu setzen.

    Hat es hier noch weitere Änderungen in der Logik gegeben die ich ggfs. übersehen habe?

    Grüße in die Runde

    Volker
     
  2. Kai Schoelzke

    Kai Schoelzke Beta-Held

    Registriert seit:
    30. März 2016
    Beiträge:
    3.803
    Danke erhalten:
    548
    Danke vergeben:
    248
    Wichtig, immer mit angeben ob Template oder Themes genutzt werden.
     
  3. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    mmhhh... wie oben geschrieben Honeygrid als Template, mit den Themes dauert es noch etwas bis alles angepasst ist ^^

    Anbei die angepassten Stellen:

    Code:
    function smarty_function_product_ribbons($params, &$smarty)
    {
        static $results;
        $key = $params['product_id'];
    
        if(isset($results[$key]))
        {
            $smarty->assign($params['out'], $results[$key]);
           
            return;
        }
       
        $arrResult = array();
    
        $arrResult['manufacturer'] = getManufacturersData($params);
        $arrResult['ribbons']      = array();
       
        $coo_text_mgr = MainFactory::create_object('LanguageTextManager', array('general', $_SESSION['languages_id']),
                                                   true);
        $sectionArray = $coo_text_mgr->get_section_array();
       
        if(count($arrTemp = getDateAvailable($params)) > 0)
        {
            $arrResult['ribbons'][] = array(
                'class' => $arrTemp['class'],
                'text'  => $sectionArray['RIBBON_UPCOMING']
            );
        }
       
        if(count($arrTemp = getNew($params)) > 0)
        {
            $arrResult['ribbons'][] = array(
                'class' => $arrTemp['class'],
                'text'  => $sectionArray['RIBBON_NEW'],
            );
        }
       
        if(count($arrTemp = getRecommendation($params)) > 0)
        {
            $arrResult['ribbons'][] = array(
                'class' => $arrTemp['class'],
                'text'  => $sectionArray['RIBBON_TOP']
            );
        }
       
        if(count($arrTemp = getSoldOut($params)) > 0)
        {
            $arrResult['ribbons'][] = array(
                'class' => $arrTemp['class'],
                'text'  => $sectionArray['RIBBON_SOLD_OUT']
            );
        }
       
        if(count($arrTemp = getSpecials($params)) > 0)
        {
            $arrResult['ribbons'][] = array(
                'class' => $arrTemp['class'],
                'text'  => $arrTemp['text'] // $sectionArray['RIBBON_SPECIAL']
            );
        }
    
        /* Erweiterung eigenes Ribbon fuer alternative Artikel */
    
            if(count($arrTemp = getAlternatives($params)) > 0)
            {
                $arrResult['ribbons'][] = array(
                    'class' => $arrTemp['class'],
                    'text'  => $sectionArray['RIBBON_ALTERNATIVE']
                );
            }
    
        /* Ende Erweiterung                                             */
       
        $results[$key] = $arrResult;
        $smarty->assign($params['out'], $arrResult);
    }
    Code:
    function getAlternatives($p_params)
    {
        $arrTemp = array();
    
        if($p_params['showProductRibbons'] !== 'true')
        {
            return $arrTemp;
        }
    
        $strSql = "select * from products_item_codes
            where products_id = " . (int)$p_params['product_id'] . "
            and code_jan = 'JG'";
        $result = xtc_db_query($strSql);
        while($item = xtc_db_fetch_array($result))
        {
            $arrTemp['class'] = 'alternative';
            $arrTemp['text']  = 'PRODUCT_RIBBON_ALTERNATIVE';
        echo('Test !!');
        };
    
        return $arrTemp;
    }
    
    Das Ganze hatte unter 3.11.2 auch super funktioniert, jetzt funktioniert es nicht mehr. :(

    Wir haben das Feld für die japanische Artikelnummer zweckentfremdet.

    Gruß Volker
     
  4. Kai Schoelzke

    Kai Schoelzke Beta-Held

    Registriert seit:
    30. März 2016
    Beiträge:
    3.803
    Danke erhalten:
    548
    Danke vergeben:
    248
    Hast du mal die Datei aus 3.11 und 3.13 verglichen, um zu schauen was sich geändert hat?
     
  5. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    Ja, hatte extra meine Änderungen in die neue Datei eingepasst wie vorher auch. Die Änderungen seitens Gambio lagen vorrangig bei den Sold-Out-Ribbons, von daher hätte es eigentlich klappen müssen.

    Muss mir mal eben das Backup vom alten Stand auf einen anderen Host ziehen, ggfs. finde ich dann den Fehler.
     
  6. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    Nach intensiver Suche habe ich den Übeltäter gefunden....

    Ich hatte die Datei im HoneyGrid-Ordner geändert, mittlerweile (?) gibt es genau die selbe Funktion unter GXMainComponents\SmartyPlugins.... hier die Änderungen eingebaut und siehe da es fluppt wieder....

    Wollte Euch aber die Lösung nicht vorenthalten ^^

    Gruß Volker
     
  7. Kai Schoelzke

    Kai Schoelzke Beta-Held

    Registriert seit:
    30. März 2016
    Beiträge:
    3.803
    Danke erhalten:
    548
    Danke vergeben:
    248
  8. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    Ja klar, aber das musste jetzt einfach fix gehen... mache ich nachher noch, wollte es erst mal wieder am laufen haben ;)

    Aber danke für den Stupser ^^
     
  9. peter_hader

    peter_hader Mitglied

    Registriert seit:
    10. April 2019
    Beiträge:
    19
    Danke erhalten:
    1
    Danke vergeben:
    2
    Hast du da eine Erweiterung in den Sprachdateien gemacht, um den Text für das Ribbon festzulegen?
     
  10. Liberty

    Liberty Aktives Mitglied

    Registriert seit:
    29. August 2011
    Beiträge:
    27
    Danke erhalten:
    2
    Danke vergeben:
    13
    Ja, habe ich vorgenommen. In der privaten Unterhaltung schicke ich Dir noch die weiteren kleinen Anpassungen wie eben geschrieben. Bin aber noch im Urlaubs-Modus ^^