Joomla.it Forum

Non solo Joomla... => Sviluppo => : luca.santaniello 29 Oct 2009, 16:24:10

: Passaggio dal Controller alla View
: 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
: Re:Passaggio dal Controller alla View
: dmdigital 30 Oct 2009, 16:21:33
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!
: Re:Passaggio dal Controller alla View
: luca.santaniello 30 Oct 2009, 16:27:14
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?
: Re:Passaggio dal Controller alla View
: dmdigital 31 Oct 2009, 11:29:13
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.
: Re:Passaggio dal Controller alla View
: luca.santaniello 31 Oct 2009, 15:17:34
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