Jump to content

Ordenar Características en el bloque de filtros


NBlack

Recommended Posts

Buenas tardes,

 

Llevo dos días que no consigo ordenar los valores de las características (field_value) no las características en si dentro del bloque. El final buscado es que lo ordene por el nº de ID (es decir, el mismo orden por el que lo metí en su día en el Backoffice) Registro 1, Registro 2....etc

 

Se que la modificación hay que hacerla en el bloque blocklayered_mod, en el archivo blocklayered_mod.php exactamente en la parte:

case 'id_feature':
					$sql_query['select'] = 'SELECT fl.name feature_name, fp.id_feature, fv.id_feature_value, fvl.value,
					COUNT(DISTINCT p.id_product) nbr,
					lifl.url_name name_url_name, lifl.meta_title name_meta_title, lifvl.url_name value_url_name, lifvl.meta_title value_meta_title ';
					$sql_query['from'] = '
					FROM '._DB_PREFIX_.'feature_product fp
					INNER JOIN '._DB_PREFIX_.'cat_restriction p
					ON p.id_product = fp.id_product
					LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = fp.id_feature AND fl.id_lang = '.$id_lang.')
					INNER JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature_value = fp.id_feature_value AND (fv.custom IS NULL OR fv.custom = 0))
					LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fp.id_feature_value AND fvl.id_lang = '.$id_lang.')
					LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang_value lifl
					ON (lifl.id_feature = fp.id_feature AND lifl.id_lang = '.$id_lang.')
					LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang_value lifvl
					ON (lifvl.id_feature_value = fp.id_feature_value AND lifvl.id_lang = '.$id_lang.') ';
					$sql_query['where'] = 'WHERE fp.id_feature = '.(int)$filter['id_value'];
					$sql_query['group'] = 'GROUP BY fv.id_feature_value ORDER BY id_feature';

					if (!Configuration::get('PS_LAYERED_HIDE_0_VALUES'))
					{
						$sql_query['second_query'] = '
							SELECT fl.name feature_name, fp.id_feature, fv.id_feature_value, fvl.value,
							0 nbr,
							lifl.url_name name_url_name, lifl.meta_title name_meta_title, lifvl.url_name value_url_name, lifvl.meta_title value_meta_title

							FROM '._DB_PREFIX_.'feature_product fp'.
							Shop::addSqlAssociation('product', 'fp').'
							INNER JOIN '._DB_PREFIX_.'product p ON (p.id_product = fp.id_product)
							LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = fp.id_feature AND fl.id_lang = '.(int)$id_lang.')
							INNER JOIN '._DB_PREFIX_.'feature_value fv ON (fv.id_feature_value = fp.id_feature_value AND (fv.custom IS NULL OR fv.custom = 0))
							LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = fp.id_feature_value AND fvl.id_lang = '.(int)$id_lang.')
							LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_lang_value lifl
								ON (lifl.id_feature = fp.id_feature AND lifl.id_lang = '.(int)$id_lang.')
							LEFT JOIN '._DB_PREFIX_.'layered_indexable_feature_value_lang_value lifvl
								ON (lifvl.id_feature_value = fp.id_feature_value AND lifvl.id_lang = '.(int)$id_lang.')
							WHERE fp.id_feature = '.(int)$filter['id_value'].'
							GROUP BY fv.id_feature_value ORDER BY id_feature';
					}

					break;

Y he intentado insertar el ORDER BY de muchas maneras pero no tengo huevos....

 

¿Alguna mano? Se que será alguna chorrada pero estoy saturado de tanto ORDER BY.

 

¡Gracias!

Link to comment
Share on other sites

Muchas gracias ventura, pero en este caso ya viene por defecto ASC por nombre, necesito que me lo ordene por el ID asociado a ese feature_value_lang.

 

Tengo estas 4 opciones (Se autoordenan de esta manera por ASC):

(ID 3)Acero, (ID 2)Oro 9k, (ID 1)Oro 18k, (ID 4)Plata

 

Necesito que se ordenen asi:

(ID 1)Oro 18k, (ID 2)Oro 9k, (ID 3)Acero, (ID 4)Plata

 

Me he planteado hasta modificar la iterancia del TPL pero es una chapuza.

 

Gracias de nuevo!

Link to comment
Share on other sites

Eso mismo pense yo pero ni se inmuta, he probado a vaciar cache, recompilar a la fuerza pero nada de nada. Es muy extraño. Sin embargo se que es ahi porque quito el group by y me muestra 1 resultado solo de todas las caracteristicas

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...