Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : pdasv 27 Jun 2013, 18:35:36
-
Buongiorno a tutti ho installato Joomla 2.5.11 e Adsmanager 2.8.2 . Ho dovuto disattivare il campo "ordina per" perchè nelle categorie non funzionava mentre invece non aveva nessun problema nella root principale. Volendo ordinare di default per prezzo sia nella root principale che nelle categorie sottostanti quali modifiche al codice devo effettuare? Grazie
-
Ciao,
Credo che il problema non sia" l'ordina per " ma come stai gestendo tu il campo prezzo. Hai solo un campo dove inserisci il prezzo? O ne hai creato piú di uno in base alla categoria? In quest'ultimo caso allora le cose si complicano perchè se non hai un campo che è associato a tutte le categorie come fai ad ordinare la root per quel campo?!
-
Ciao grazie per la celere risposta . Ho risolto ripristinando la versione ADS manager 2.7 con l'ultima non ordinava il campo a livello di root anche se era impostato per tutte le categorie. Ora mi sorge un altro dubbio... se volessi eliminare definitivamente l'ordinamento per data in modo da ordinare di default per per prezzo?
-
Allora credo che si possa fare modificando la funzione
getContents($filters = null,$limitstart=null,$limit=null,$filter_order=null,$filter_order_Dir=null,$admin=0)
In /administrator/components/com_adsmanager/models/content.php
All'interno c'e':
$sql .= " GROUP BY a.id ORDER BY $filter_order $filter_order_Dir ";
Devi solo sostituire $filter_order con il campo che vuoi usare come ordinatore. Fai delle prove ma a guardare il codice dovrebbe essere lui.
Fammi sapere se funziona.
Ciao
-
ciao Ilnavigatore grazie per la dritta il file dovrebbe essere quello ma anche se cambio il campo con
$sql .= " GROUP BY a.ad_price ORDER BY $filter_order $filter_order_Dir "; resta tutto come prima.
Ho provato anche a sostuire l'ordinamento e il campo a partire dalla riga 367 in questo modo
/* Popular */
case 2:
$order_sql = "ORDER BY a.views ASC,a.ad_price ASC ,a.id DESC ";
break;
/* Random */
case 1:
$order_sql = "ORDER BY RAND() ";
break;
/* Latest */
case 0:
default:
$order_sql = "ORDER BY a.ad_price ASC ,a.id DESC ";
break;
Il risultato non cambia mai .........
-
/* Popular */
case 2:
$order_sql = "ORDER BY a.views ASC,a.ad_price ASC ,a.id DESC ";
break;
/* Random */
case 1:
$order_sql = "ORDER BY RAND() ";
break;
/* Latest */
case 0:
default:
$order_sql = "ORDER BY a.ad_price ASC ,a.id DESC ";
break;
Quello che tu mi indichi fa parte della funzione:
getLatestContents($nbcontents,$sort_type=0,$catselect="no")
A te serve la funzione:
getContents($filters = null,$limitstart=null,$limit=null,$filter_order=null,$filter_order_Dir=null,$admin=0)
Dove all'interno c'e':
$sql .= " GROUP BY a.id ORDER BY $filter_order $filter_order_Dir ";
E devi modificarlo in:
$sql .= " GROUP BY a.id ORDER BY a.ad_price $filter_order_Dir ";
Tu avevi raggruppato per il prezzo e mi sembra strano che vedessi ancora qualche annuncio.
Ti consiglio, prima di lanciarti in modifiche, di aiutarti con un manuale SQL o PHP giusto per capire cosa devi modificare e come. Altrimenti rischi di non uscirtene.
Spero di esserti stato d'aiuto.
-
Grazie Gentilissimo!! ;) aggiungo per chi avesse lo stesso problema che l'ordinamento ascendente l'ho dovuto impostare alla riga 576 cambiando la stringa in $filter_order_Dir= "ASC";