php - open - joomla wikipedia
Joomla get(''Items'') y como funciona (1)
Estoy suponiendo 1.7 / 2.5 + aquí ...
En el MVC de Joomla! La vista de contacts
( ContactViewContacts
que extends JView
) carga automáticamente los contacts
modelo (o en la terminología J! ContactModelContacts
) que como clase extends JModelList
.
El get()
busca en la vista para obtener datos de un modelo registrado o una propiedad de la vista.
Asi que;
$this->items = $this->get(''Items'');
es en realidad una llamada al modelo ContactModelContacts
que tiene un getItems()
coincidente en su parent
.
El archivo de modelo com_contact/models/contacts.php
no implementa sus propios getItems()
, por lo que se getItems()
de la clase JModelList
(se encuentra en /libraries/joomla/application/component/modellist.php
).
Esto, a su vez, llama a getListQuery()
- no es magia, simplemente herencia.
El $this->get(''Pagination'')
está haciendo lo mismo, es decir. Accediendo a la implementación en los modelos padre.
El $this->get(''State'')
está probablemente regresando a la implementación de JModel
.
Estoy mirando la línea 34 de /administrator/components/com_contact/views/contacts/view.html.php donde dice $this->items = $this->get(''Items'');
Lo que no entiendo es cómo está llamando a la protected function getListQuery()
en la línea 123 de /administrator/components/com_contact/models/contacts.php
También hay algunas otras cosas que no entiendo cómo funcionan ... como
$this->pagination = $this->get(''Pagination'');
$this->state = $this->get(''State'');
¿Cuáles son estas llamadas? Miré la documentación de "get ()" pero no dice a qué llaman en realidad porque no veo ningún método llamado getPagination, getState o getItems ... Parece que get (''Items'') es de alguna manera Llamando mágicamente a getListQuery ().