Joomla.it Forum
Non solo Joomla... => Sviluppo => : luca.santaniello 29 Oct 2009, 16:24:10
-
Salve a tutti...
sono alle prime armi e sto cercando di prendere confidenza con il framework...
Ho il seguente problemino:
Ho un Controller e una View... entrambi hanno 2 metodi:
class TorneiController extends JController
{
function display()
{
parent::display();
}
function homeTorneo()
{
...
}
}
class TorneiViewTornei extends JView
{
function display($tpl = null)
{
.....
parent::display($tpl);
}
function homeTorneo($tpl = 'homeTorneo')
{
......
}
}
Il problema è il seguente:
Se richiamo il link index.php?option=com_tornei&task=homeTorneo&idTorneo=1
mi aspettavo che venisse invocato il metodo homeTorneo della mia View...
invece viene richiamato sempre il metodo display!
Qualcuno saprebbe dirmi cosa mi manca?
Grazie a tutti in anticipo
-
I "task" vengono gestiti dal controller, che esegue la funzione corrispondente; in ogni caso, qualsiasi operazione di logica andrebbe fatta all'interno del controller, per rispettare il modello è opportuno che le view abbiano solamente funzionalità di visualizzazione. Quindi, puoi, all'interno della funzione del controller, fare tutte le operazioni di logica necessarie, e poi impostare con
JRequest::setVar('view','latuaview');
parent::display();
la view da visualizzare.
Ciao!
-
I "task" vengono gestiti dal controller, che esegue la funzione corrispondente; in ogni caso, qualsiasi operazione di logica andrebbe fatta all'interno del controller, per rispettare il modello è opportuno che le view abbiano solamente funzionalità di visualizzazione. Quindi, puoi, all'interno della funzione del controller, fare tutte le operazioni di logica necessarie, e poi impostare con
JRequest::setVar('view','latuaview');
parent::display();
la view da visualizzare.
Ciao!
Capito... ma allora ciascuna vista deve avere soltanto il metodo display?
-
Ciascuna vista può anche avere dei metodi, che però ti consiglio di chiamare soltanto dal metodo display(), che è quello di esecuzione vera e propria della view.
-
Ciascuna vista può anche avere dei metodi, che però ti consiglio di chiamare soltanto dal metodo display(), che è quello di esecuzione vera e propria della view.
Seguirò alla lettera il consiglio... ma adesso mi rimane il dubbio... per curiosità, come richiamo in automatico dal controller un metodo specifico della View?
Grazie mille a tutti per l'aiuto