curro Posted June 11, 2010 Share Posted June 11, 2010 Hola,me he instalado la versión 1.3.1 y no veo la forma de conseguir lo que necesito. Resulta que tengo productos nuevos y productos que estarán disponibles en breve. El problema es que si meto los productos que todavía no están disponibles me salen en el bloque novedades. ¿Como puedo hacer que no me salgan ahí?. Lo ideal sería que el bloque novedades buscase en la base de datos los productos nuevos (como hace) pero que limite la fecha de novedad hasta el día en el que se esté. He visto que en la tabla products de la base de datos hay un campo que se llama date_add y que está relacionado con eso. ¿Como puedo hacer para que en el bloque novedades me limite la fecha al día de hoy y que no coja los días posteriores?Gracias Link to comment Share on other sites More sharing options...
DDelgado Posted June 11, 2010 Share Posted June 11, 2010 Lo único que se me ocurre es que modifiques la consulta que aparece en /classes/Product.php, función getNewProducts en la línea 1083, en dicha función se realizan dos consultas, una para obtener el nº de artículos en novedades y otra para obtener el listado.Entiendo que la fecha la pones de alguna forma automatizada y que tendrás algún módulo para introducir las próximas apariciones.También puedes decidir tener los productos desactivados y activarlos en dicha fecha, si tienes un módulo para introducir las próximas novedades se puede modificar para que introduzca el artículo desactivado y lo active en la fecha de aparición. Link to comment Share on other sites More sharing options...
curro Posted June 11, 2010 Author Share Posted June 11, 2010 En primer lugar gracias por responder, se agradece.... Te cuento, los productos los importé a la web con la importación de prestashop y luego desde access, mediante un conector odbc para mysql, vinculé la tabla products del servidor e importé un fichero de excel de mi proveedor con los precios ya calculados con su margen y la fecha del producto entre otras cosas. Como algunas fechas son de días posteriores (por ejemplo, el gran turismo 5 para PS3 sale el 10 de septiembre) pues de la manera que está diseñado prestashop me muestra ese producto y no quiero que salga ahí. Una vez que vea donde se modifica lo que haré será crear un módulo modificando ese mismo parámetro y haciéndolo al revés, que salgan los productos que superen el día de hoy para que salgan en "Próximamente". Estuve buscando pero no encuentro nada gratuito que lo incorpore así que me tocará currarmelo. Voy a ver eso que dices a ver si doy con ello.Un saludo Link to comment Share on other sites More sharing options...
curro Posted June 11, 2010 Author Share Posted June 11, 2010 Nada, no lo he conseguido, después de mirarlo varias horas no doy con ello. Al final he hecho algo tan simple como cambiar en la línea 1110 WHERE `active` = 1por esto otroWHERE `id_product` = 1del fichero que me has dicho y no me sale solo ese producto, me sale lo mismo que de la otra forma, raro raro raro Link to comment Share on other sites More sharing options...
curro Posted June 11, 2010 Author Share Posted June 11, 2010 Resuelto, al final he dado con ello. En el fichero /classes/Product.phpHe añadido dos lineas para que funcione correctamenteen la 1111 después de WHERE `active` = 1añado AND p.`date_add` <= CURDATE ()y en la línea 1135 despues de WHERE p.`active` = 1añadoAND p.`date_add` <= CURDATE ()Con esto ahora salen únicamente las novedades reales y no las futuras.Gracias Link to comment Share on other sites More sharing options...
DDelgado Posted June 14, 2010 Share Posted June 14, 2010 Para el módulo 'próximamente' duplica la función getNewProducts cambiando las dos líneas que has agregado por AND p.`date_add` > CURDATE (), después en la carpeta modules copias la carpeta blocknewproducts y le pones otro nombre (en minúsculas), los ficheros de la nueva carpeta deben tener el mismo nombre que la carpeta, modificas el nombre de la clase en el fichero php y buscas new en el php y en tpl cambiando dichos textos por unos que identifiquen el nuevo propósito.Después, en la línea 68 del fichero php cambias Product::getNewProducts por la nueva función que hayas creado.Te aconsejo hacerlo en local, si tienes alguna duda pregunta.Un saludo Link to comment Share on other sites More sharing options...
curro Posted June 14, 2010 Author Share Posted June 14, 2010 Hola,eso que comentas ya lo hice y me funciona bien, lo único y todavía no he dado con ello es hacer que al pinchar en próximamente se me abran los productos que van a salir en lugar de los productos que son novedades.Gracias Link to comment Share on other sites More sharing options...
DDelgado Posted June 14, 2010 Share Posted June 14, 2010 Copia los ficheros /new-products.php y /theme/{tu-tema}/new-products.tpl, en el primero llama a la nueva función (la que devuelve el listado de 'próximamente' y la llamada al tpl, en el segundo cambia lo que creas necesario (básicamente el título y el mensaje si no se encuentran artículos)Un saludo Link to comment Share on other sites More sharing options...
Recommended Posts