Jump to content

[Solucionado] Personalización Bloque navegación por facetas


Recommended Posts

Muy buenas a todos. Como todos sabemos el "Módulo de navegación por facetas" te permite crear "Filtros de Plantillas". Dentro de estos "Filtros de Plantillas" puedes seleccionar que filtros se muestran en determinadas categorías. Por ejemplo podemos asignar dos "Características de Productos" para una categorías; "Sistema Operativo"  y "Memorias RAM" solo para la categoría Portátiles. Hasta aquí bien.

 

Lo que he intentado hacer sin éxito es lo siguiente:

 

Cuando estamos editando un "Filtro de Plantilla" y estamos seleccionando las "Características de Productos" que queremos que se muestren en determinadas categorías, vemos esas "Características de Productos" estás listadas u ordenadas por ID de "Características de Productos".

Lo que necesito es que esas "Características de Productos" se listen u ordenen por Posición. 

 

La imágenes ejemplifica un poco a lo que me refiero.

 

¿Qué consulta SQL dentro del modulo hay que modificar? He intentando encontrarla pero sin éxito.

 

Muchas gracias. 

 

 

post-1190181-0-51485100-1461347598_thumb.jpg

Edited by pdalexis (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Remplazar la consulta siguiente del fichero module / blocklayered / blocklayered.php

		$features = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
			SELECT fl.id_feature, fl.name, COUNT(DISTINCT(fv.id_feature_value)) n
			FROM '._DB_PREFIX_.'feature_lang fl
			LEFT JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature = fl.id_feature)
			WHERE (fv.custom IS NULL OR fv.custom = 0) AND fl.id_lang = '.(int)$cookie->id_lang.'
			GROUP BY fl.id_feature'
		);

por:

	$features = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
			SELECT fl.id_feature, fl.name, COUNT(DISTINCT(fv.id_feature_value)) n
			FROM '._DB_PREFIX_.'feature_lang fl
			LEFT JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature = fl.id_feature)
			LEFT JOIN '._DB_PREFIX_.'feature fe ON (fe.id_feature = fl.id_feature) 
			WHERE (fv.custom IS NULL OR fv.custom = 0) AND fl.id_lang = '.(int)$cookie->id_lang.'
			GROUP BY fl.id_feature
			ORDER BY fe.position ASC
			');
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...