libreriaquercus Posted May 20, 2014 Share Posted May 20, 2014 Buenas tardes. Si alguien ve mi bloque de mejores ventas "www.libreriaquercus.com" aparecen bastantes artículos de una categoría que ya no vendemos y por eso está desactivada (pero no eliminada). Necesitaría poder excluirla del módulo para que aparezcan en la lista solamente artículos de categorías que vendamos actualmente. ¡Adjunto foto! muchas gracias a tod@s!! Sergio. Plantilla "default". Prestashop 1.5.6. Link to comment Share on other sites More sharing options...
ventura Posted May 20, 2014 Share Posted May 20, 2014 para eso tienes que hacer un override de la clase ProductSale.php con algun condicional en las funciones getBestSales y getBestSalesLight Link to comment Share on other sites More sharing options...
libreriaquercus Posted May 21, 2014 Author Share Posted May 21, 2014 Te agradezco la respuesta... pero desconozco cómo hacer lo que me dices. ¿Puedes poner un ejemplo? Saludos. Link to comment Share on other sites More sharing options...
ventura Posted May 21, 2014 Share Posted May 21, 2014 Este post te puede guiar http://www.prestashop.com/forums/topic/41945-solved-need-help-editing-new-products-block-pls/ Link to comment Share on other sites More sharing options...
libreriaquercus Posted May 22, 2014 Author Share Posted May 22, 2014 (edited) Ventura, he tratado de guiarme con el post que me has indicado, pero algo he debido de hacer mal porque ahora si activo el módulo me sale la página en blanco. El error es: Fatal error: Class 'ProductSale' not found in /furanet/sites/libreriaquercus.com/web/htdocs/modules/blockbestsellers/blockbestsellers.php on line 184 Creo que el problema está en que las versiones de Prestashop no coinciden, porque el código era algo distinto. Recuerdo que mi versión es la 1.5.6.0. He eliminado el módulo y vuelto a descargar desde Prestashop, pero sigue pasando lo mismo. Ahora mismo lo tengo desactivado. Alguna idea sobre esta "catástrofe"?? Edited May 22, 2014 by libreriaquercus (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted May 23, 2014 Share Posted May 23, 2014 en la carpeta cache elimina el archivo class_index.php Link to comment Share on other sites More sharing options...
libreriaquercus Posted May 23, 2014 Author Share Posted May 23, 2014 Hecho! Ventura, muchas gracias. Ahora seguimos... En el post #5 del enlace dice lo siguiente (traduzco): [] Necesitarás cambiar la función getBestSalesLight en classes/ProductSale.php a:static public function getBestSalesLight($id_lang, $pageNumber = 0, $nbProducts = 10, $id_category = 0){ global $link, $cookie; if ($pageNumber < 0) $pageNumber = 0; if ($nbProducts < 1) $nbProducts = 10; $result = Db::getInstance()->ExecuteS(' SELECT p.id_product, pl.`link_rewrite`, pl.`name`, pl.`description_short`, i.`id_image`, il.`legend`, ps.`quantity` AS sales, p.`ean13`, cl.`link_rewrite` AS category FROM `'._DB_PREFIX_.'product_sale` ps LEFT JOIN `'._DB_PREFIX_.'product` p ON ps.`id_product` = p.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (cl.`id_category` = p.`id_category_default` AND cl.`id_lang` = '.intval($id_lang).') WHERE p.`active` = 1' . ($id_category == 0 ? '' : ' AND p.`id_category_default` = '.$id_category) . ' AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.(!$cookie->id_customer ? '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').' ) GROUP BY p.`id_product` ORDER BY sales DESC LIMIT '.intval($pageNumber * $nbProducts).', '.intval($nbProducts)); if (!$result) return $result; foreach ($result AS &$row) { $row['link'] = $link->getProductLink($row['id_product'], $row['link_rewrite'], $row['category'], $row['ean13']); $row['id_image'] = Product::defineProductImage($row); } return $result;}Después debes cambiar la línea 35 de modules/blockbestsellers.php a:$bestsellers = ProductSale::getBestSalesLight(intval($params['cookie']->id_lang), 0, 5, $_GET['id_category']); 1. Reemplazo todas las líneas de "getBestSalesLight" ProductSale.php, tal y como dice... todo bien... 2. Pero tengo dudas en la línea 35 del módulo blockbestsellers.php. Tengo la sensación de que se trata de otra versión, ya que la línea 35 de mi módulo es: public function __construct() y si la cambio me vuelvo a quedar con la pantalla en blanco. Saludos. Link to comment Share on other sites More sharing options...
Recommended Posts