it-swarm.dev

Qual è lo scopo di $ this-> get ('Item') nel file di esempio di Joomla view.html.php?

Mi riferisco al codice seguente, presentato in Sviluppo di un componente MVC - Esempio di funzione Front End :

class HelloWorldViewUpdHelloWorld extends JView
{
    // Overwriting JView display method
    function display($tpl = null) 
    {
            $app            = JFactory::getApplication();
            $params         = $app->getParams();
            $dispatcher = JDispatcher::getInstance();

            // Get some data from the models
            $state          = $this->get('State');
            $item           = $this->get('Item');  //WHAT IS THE PURPOSE OF THIS STATEMENT?
            $this->form     = $this->get('Form');

            // Check for errors.
            if (count($errors = $this->get('Errors'))) 
            {
                    JError::raiseError(500, implode('<br />', $errors));
                    return false;
            }
            // Display the view
            parent::display($tpl);
    }

}

Non capisco lo scopo di questa affermazione e noto anche che $item non appare nel codice nel file site/views/updhelloworld/tmpl/default.php su quella pagina web.

In realtà ho la stessa domanda per il view.html.php file di com_users/views/registration di Codice Joomla 3 (ho pensato confrontando i due moduli per inviare esempi, potrei rispondere alla mia domanda):

    $this->data     = $this->get('Data'); //WHAT IS THE PURPOSE OF THIS STATEMENT? WHAT PRECISELY KIND OF DATA iS MEANT HERE?
    $this->form     = $this->get('Form');
    $this->state    = $this->get('State');
    $this->params   = $this->state->get('params');

E anche qui $this->data non appare nel relativo tmpl/default.php file (?)

6
Joppo

Nelle classi che si estendono JView o JViewLegacy, una chiamata a $this->get() chiamerà una funzione nelle classi di modelli registrati che iniziano con get. Quindi chiamando $this->get('Item') chiamerà il metodo getItem di un modello.

5
Michael

$this->get('Item') chiama la funzione getItem() nel modello e successivamente carica i dati dal database.

$this->get('Data') chiama un metodo nel modello che ottiene i dati del modulo di registrazione e li prepara per l'uso.

Dai un'occhiata a getData in com_users/models/registration.php

3
patterncatcher