Post by wideru » Tue May 07, 2013 6:53 am

Buenas, me gustaría incluir todos los productos de la base de datos dentro del modulo Featured sin tener que añadirlo uno a uno a mano.
Con un script de vqmod que encontré en el foro en ingles hice que se mostraran de forma aleatoria (lo adjunto por si a alguien le interesa).
¿Alguien sabe que necesitaría para que en vez de obtener los productos seleccionados los seleccione todos directamente?
Mi finalidad es que al entrar en la web el usuario encuentre cada vez una selección distinta entre todos los productos de la web y la forma mas facil creo que es usando este módulo directamente.
Gracias de antemano

Attachments


Newbie

Posts

Joined
Tue May 07, 2013 6:47 am

Post by soportelibelula » Mon Jun 24, 2019 10:05 am

en la version 3 de opencart no pude encontrar como hacerlo.

el adjunto que vos dejaste, como se activa desde vqmod?
gracias
Ignacio


Posts

Joined
Fri Jun 21, 2019 5:47 am

Post by soportelibelula » Mon Jun 24, 2019 10:07 am

Como se instala el archivo en vqmod?


Posts

Joined
Fri Jun 21, 2019 5:47 am

Post by dharmawebstudio » Wed Jun 26, 2019 7:56 pm

Hola @wideru.

¿Que versión de OpenCart estas usando?

En principio con algunas modificaciones al modulo Featured en el controlador seria suficiente para lograr esto, si bien con ello, modificarias el comportamiento de este modulo. Hacerlo bien requiere mas tiempo e inversión.

Asumiendo que usas OpenCart 3.X, debes ir al /catalog/controller/extension/module/featured.php.

Una vez allí modificar este conjunto de lineas:

Code: Select all

if (!empty($setting['product'])) {
	$products = array_slice($setting['product'], 0, (int)$setting['limit']);
	foreach ($products as $product_id) {
		$product_info = $this->model_catalog_product->getProduct($product_id);
Por algo como esto:

Code: Select all

if (!empty($setting['product'])) {
	$products = $this->model_catalog_product->getProducts(array());
	foreach ($products as $product_id) {
		$product_info = $this->model_catalog_product->getProduct($product_id['$product_id']);
Esto lo que hace es que deje de tomar la referencia de los productos que configuras en el modulo, para tomar la referencia de todos los productos en base de datos; y luego pasar la referencia del ID de cada uno de los productos al controlador.

Para modificar el limite de productos que estas mostrando:

Puedes reemplazar esto:

Code: Select all

if (!$setting['limit']) {
	$setting['limit'] = 4;
}
Por esto:

Code: Select all

$setting['limit'] = 100;
Como he dicho anteriormente, esto cumple con lo deseado, pero es hacerlo mal, porque anulas las funcionalidades del modulo, y de alguna forma no permites que el modulo indique cuales son los productos que deseas usar.

No he hecho pruebas de esto, de manera que el código lo he marcado sin probar debidamente si hay errores, pero creo que de funcionar sin problemas.
En todo caso, si entiendes un poco de código, deberías con esto de tener un insight acerca de como opera la arquitectura MVC en OpenCart.

Si quieres encargarnos el desarrollo de un modulo ocmod - vqmod para esto, haz un contacto por privado y revisamos tus necesidades.

Un saludo.
Mucha suerte en tu tienda.

Dharma Web Studio - Daniel Civit
Web Developer
Website: https://dharmawebstudio.com


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 6:33 am
Location - Madrid - Spain
Who is online

Users browsing this forum: Google [Bot] and 202 guests