Iván Ros Posted May 4, 2022 Share Posted May 4, 2022 Buenos días. Instalé el módulo de AliExpress de Línea Gráfica y necesito hacer un override de la class AlliExpressAttribute para que se tenga en cuenta en futuras actualizaciones. Lo he realizado de mil formas y Prestashop no ejecuta mi Override. He creado el archivo AlliExpressAttribute.php en: /modules/aliexpress_official/override/classes/AlliExpressAttribute.php /override/modules/aliexpress_official/classes/AlliExpressAttribute.php /override/classes/AlliExpressAttribute.php (esta ya por desesperación) El archivo contiene la función public static function getGroups($id_category) en la que simplemente comento la parte en la que le especifica a la sentencia SQL el id_category_default, dado que vamos a subir productos en la categoría OFERTAS pero esa no es la categoría por defecto de los productos a subir. <?php class AliexpressAttributeOverride extends AliexpressAttribute { public static function getGroups($id_category) { $id_lang = Context::getContext()->language->id; $id_shop = AliexpressConf::getShopId(); $sql = 'SELECT DISTINCT fl.`id_feature`, fl.`name` FROM `' . _DB_PREFIX_ . 'feature_lang` fl JOIN `' . _DB_PREFIX_ . 'feature` f ON f.`id_feature` = fl.`id_feature` JOIN `' . _DB_PREFIX_ . 'feature_value` fv ON fv.`id_feature` = f.`id_feature` JOIN `' . _DB_PREFIX_ . 'feature_product` fp ON fp.`id_feature` = f.`id_feature` JOIN `' . _DB_PREFIX_ . 'product_shop` ps ON ps.`id_product` = fp.`id_product` WHERE fl.`id_lang` = ' . (int) $id_lang . ' AND ps.`id_shop` = ' . (int) $id_shop; /*if ((int) $id_category > 0) { $sql .= ' AND ps.`id_category_default` = ' . (int) $id_category; }*/ if ($rows = Db::getInstance()->executeS($sql)) { foreach ($rows as $k => $row) { if ($values = FeatureValue::getFeatureValuesWithLang($id_lang, $row['id_feature'])) { $rows[$k]['values'] = $values; } else { $rows[$k]['values'] = array(); } } return $rows; } return array(); } } He borrado mil veces la caché, tanto en Rendimiento > Borrar caché, como por SSH eliminando la carpeta /var/cache/ y todo sigue igual. Adjunto configuración de la tienda. Tengo la reconfiguración de las plantillas cuando se actualizan, Cache: No y Modo depuración: Sí. ¿Hay algo que se me escapa? Versión de Prestashop: 1.7.6.4 Gracias de antemano. Un saludo. Link to comment Share on other sites More sharing options...
idnovate.com Posted May 5, 2022 Share Posted May 5, 2022 PrestaShop no permite sobreescribir clases o controladores de los módulos, solo la clase principal. Prueba si esto sigue funcionando: Link to comment Share on other sites More sharing options...
Iván Ros Posted May 5, 2022 Author Share Posted May 5, 2022 Hola. Vaya, creía que sí que se podía hacer también en classes y controllers. Pues es un follón esto. Voy a probar suerte con lo que indicas, en un servidor de pruebas. Si funciona, vuelvo para indicaros la versión de Prestashop en la que funciona todavía. Gracias por el aporte. Un saludo. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now