Post by NicolasFebrisur » Thu Mar 17, 2016 7:21 pm

Hola!
Soy nuevo en el foro y también en OpenCart, estoy aprendiendo poco a poco, pero no avanzo al ritmo que me gustaría, así que voy a pediros ayuda a ver si me va mejor!
Mi idea es que al buscar productos desde la interfaz de administrador, la búsqueda ofrezca sugerencias en base a las letras que haya escritas hasta el momento, lo que seria un utilizar un "like %%" de SQL. Sin embargo, OpenCart trae por defecto sugerencias que solo analizan si hay un producto que empieza por las letras que haya escritas.
primera.png

primera.png (31.69 KiB) Viewed 651 times

Como se puede ver en la siguiente imagen, buscar por Cinema, no nos muestra sugerencia alguna.
Segunda.png

Segunda.png (25.56 KiB) Viewed 651 times

Bueno, si a alguien que quiera ayudar no le queda claro lo que quiero hacer, intentare explicarlo mejor, por el contrario si alguien puede guiar sobre donde tendría que tocar el código para conseguir lo que busco, soy todo oidos :D

Saludos!


Posts

Joined
Wed Mar 16, 2016 5:02 pm

Post by celestial » Fri Mar 18, 2016 12:33 am

Todo el tratamiento de las tablas de la Base de datos es en el model:

admin - model - catalog - product.php

Mira el pedazo de codigo que te pongo y lo que queda es modificar a tu antojo o necesidad, recuerda la regla de oro, RESPALDA PRIMERO EL ARCHIVO A MODIFICAR. Y te recuerdo que esta parte (model) toca los datos por lo tanto extrema las precauciones.

Code: Select all

public function getProducts($data = array()) {
		$sql = "SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)";

		if (!empty($data['filter_category_id'])) {
			$sql .= " LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)";
		}

		$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

		if (!empty($data['filter_name'])) {
			$sql .= " AND pd.name LIKE '" . $this->db->escape($data['filter_name']) . "%'";
		}

		if (!empty($data['filter_model'])) {
			$sql .= " AND p.model LIKE '" . $this->db->escape($data['filter_model']) . "%'";
		}

Celestial - Martín Abel Rosales
WhatsApp: 50671482211
Email: martinrosales2012@hotmail.com
Skype: martin.abel.rosales
San José , Costa Rica


User avatar
Expert Member

Posts

Joined
Sat Mar 20, 2010 4:19 am
Location - Costa Rica

Post by CoverUp » Fri Mar 18, 2016 2:12 am

Esta es una característica que postule el año 2014 y que a la fecha aún no ha sido implementada.

Aqui tienes el listado de archivos a modificar y cómo hacerlo.

https://github.com/opencart/opencart/pull/2163
https://github.com/opencart/opencart/pull/2162
https://github.com/opencart/opencart/pull/2164
https://github.com/opencart/opencart/pull/2160
https://github.com/opencart/opencart/pull/2161

Por supuesto como siempre Daniel simplemente cerro el pull haciendo caso omiso, razón por la cual ya muchos desarrolladores ya no participan activamente. No tiene mucho sentido invertir tiempo en desarrollo para que las mejoras no sean incorporadas.

Desarrollador OpenCart: Chilexpress, Correos de Chile, Tur-Bus, Pullman Bus, Starken, WebPay Plus, Servipag y otros a pedido. Todos los trabajos estan garantizados y con factura electrónica.


Active Member

Posts

Joined
Tue Oct 21, 2014 12:22 am

Post by NicolasFebrisur » Fri Mar 18, 2016 6:23 pm

Es una lastima que esa sea la actitud por parte de Daniel, sobre todo para algo tan básico como esto...
Muchas gracias por vuestra ayuda! :D


Posts

Joined
Wed Mar 16, 2016 5:02 pm
Who is online

Users browsing this forum: No registered users and 5 guests