NBlack Posted March 27, 2016 Share Posted March 27, 2016 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 More sharing options...
ventura Posted March 27, 2016 Share Posted March 27, 2016 Para que te las ordene por nombre hazlo con ORDER BY fvl.value 1 Link to comment Share on other sites More sharing options...
NBlack Posted March 27, 2016 Author Share Posted March 27, 2016 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 More sharing options...
ventura Posted March 27, 2016 Share Posted March 27, 2016 Entonces si te he entendido bien deberia ser ORDER BY fvl.id_feature_value 1 Link to comment Share on other sites More sharing options...
NBlack Posted March 27, 2016 Author Share Posted March 27, 2016 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now