Joomla.it Forum
Non solo Joomla... => Sviluppo => : skyline81 19 Jan 2013, 15:02:06
-
sembra una banalità ma sto impazzendo... sicuramente mi sfugge qualcosa!
ad ogni modo... qualcuno saprebbe indicarmi come restituire tutti i dati di una query senza l'utilizzo della paginazione standard?
nel model richiamato dalla vista setto la query ma questa quando va in esecuzione gli viene aggiunta di base la paginazione standard di Joomla!
-
gli viene aggiunta di base la paginazione standard di Joomla!
----------------------------------------------------------
no, gli viene aggiunta se gliel'hai aggiunta... o se hai copiato un componente senza sapere cosa stavi facendo e quindi hai copiato ciò che riguarda la paginazione.
-
devi fare l'override della funzione nel tuo model della funzione contenuta nella classe JModel
protected function _getList($query, $limitstart = 0, $limit = 0)
{
$this->_db->setQuery($query, $limitstart, $limit);
$result = $this->_db->loadObjectList();
return $result;
}
con
protected function _getList($query, $limitstart = 0, $limit = 0)
{
$this->_db->setQuery($query);
$result = $this->_db->loadObjectList();
return $result;
}
-
ciao mau...
ti risparmio il codice relativo all'entry point del componente e al controller in quanto non credo c'entrino molto...
l'entry point instanzia la classe del componente mentre il controller ne setta come view di default una che ho chiamato summary...
la summaryView richiama il suo model models/summary.php che contiene il seguente codice
class ComponentXModelSummary extends JModelList {
protected function getListQuery() {
$db = JFactory::getDBO();
$query = $db->getQuery( true );
$query->select( 'Campo1, count(Campo2) as numCampo2');
$query->from( '#__mytable' );
$query->group( 'campo1' );
$query->order( 'numCampo2 DESC');
return $query;
}
}
nel view.html.php della summaryView invece
class ComponentXViewSummary extends JView {
function display( $tpl = null ) {
$items = $this->get( 'Items' );
$this->items = $items;
$this->addToolBar();
parent::display( $tpl );
}
e il metodo addToolBar come puoi intuire aggiunge titolo ed alcuni pulsanti...
-
grazie Simone per la dritta... messa in campo e funziona alla grande!
:)
-
Comunque quello che mau vi incoraggia a fare è quello di guardare il codice che utilizzate per sforzarvi a capire cosa usate, è chiaro che la paginazione sta in una funzione contenuta nelle classi padre, ci vuole poco ad arrivarci e guardare
-
Ma difatti avevo capito mau cosa volesse intendere... ;)
Il mio problema stava nel fatto che volevo provare ad inserire nella view.html.php una variabile che andasse a settare il list.limit al numero totale di record che avevo ricavato con il metodo $this->get( 'Total' )
mentre la soluzione era eseguire l'override come hai suggerito.
PS: una domanda... avevo abilitato il debug per capire cosa stava succedendo sotto e notavo due query passate al db: la prima era quella contenuta nel model mentre la seconda era quella a cui J! aveva aggiunto il LIMIT.
Ora ho sempre due query... entrambi uguali... normale secondo voi?
PS: grazie ancora ;)
-
La prima serve per ottenere il totale per creare la paginazione la seconda per ottenere i record da mostrare
-
Comunque quello che mau vi incoraggia a fare è quello di guardare il codice che utilizzate per sforzarvi a capire cosa usate, è chiaro che la paginazione sta in una funzione contenuta nelle classi padre, ci vuole poco ad arrivarci e guardare
yess! ... mi fa piacere che qualcuno se ne accorga anche se sono sempre users abbastanza evoluti a farlo, gli altri si limitano a definirla superbia, arroganza, supponenza etc....
Ora ho sempre due query... entrambi uguali... normale secondo voi?
--------------------------------------------------------------------------------------
...un trucco per rimanere calmi è non guardare mai quante query fa joomla :)
-
mi dai dell'evouluto mi lusinghi ;D
penso che sia palese il ragionamento che fai tu e penso che sia piu che giusto x problemi di questo tipo che si risolvono solo guardando un po in giro. Forse sbaglio xche a me piace dare la soluzione se ci vogliono poche righe per darla. Comunque mi rendo conto che solo con i miseri tutorial che ci sono in giro non è facile sviluppare qualcosa e ci vuole tantissimo tempo per raggiungere un livello decente
-
beh dai, sviluppi e non mi sembra pasticciando...
...sì infatti, ... il problema è che si incaxano subito e non hai tempo di portare nessuno a ragionare ma non è che lo avrei mollato lì con quella risposta...
Spesso fornire un pezzetto di codice è "pericoloso" proprio perchè funziona.... il problema è che tu sai come... lui no quindi potrebbe usarlo male
-
...un trucco per rimanere calmi è non guardare mai quante query fa joomla :)
------------------------------------------------------------------------------------------------------
lo terrò a mente ;)
comunque grazie mille a entrambi per il supporto
-
Comunque mi rendo conto che solo con i miseri tutorial che ci sono in giro non è facile sviluppare qualcosa e ci vuole tantissimo tempo per raggiungere un livello decente
Ahimé quanto è vera questa cosa...