Hola gente, estoy siguiendo un curso de Lynda.com (que recomiendo a todo el que se quiera adentrar en la programación con la API de joomla sin duda alguna), pero he encontrado una duda que no termino de comprender.
Estoy en el tema del Back-End que tiene algunas diferencias en cuanto al desarrollo del Front-End sobre todo en temas de seguridad.
Me he topado en un ejemplo con un método en el modelo que pego aquí mismo.
Código:
//Clase para manejar listas de elementos
protected function populateState($ordering = null, $direction = null) //rellenará de forma automática el estado en el modelo
{
//Gets the value of a user state variable and sets it in the session
$published = $this->getUserStateFromRequest($this->context.'.filter.published', 'filter_published');
$this->setState('filter.published', $published); //Method to set model state variables
parent::populateState($ordering, $direction);
}
Nota: Algunos comentarios son de mi cosecha, otros los he sacado de la web oficial de la API de Joomla.
Mi duda es que en el mismo modelo existe otro método
getListQuery() que como ya sabéis es el encargado de realizar las consultas a al bd; y en este método encontramos esto (en mi ejemplo)
$published = $this->getState('filter.published'); que entiendo que será un método de la clase padre (de la que hereda)
JModelList , hasta aquí todo bien; pero luego en lo que yo llamo el
mini-controlador de las vistas , el archivo
view.html.php se hace referencia a esto mismo de la siguiente manera
this->state = $this->get('State'); , pero lo sorprendente es que en este caso l
a propiedad $this->state pasa a tener el valor de un objeto no un entero como era el caso del modelo $published = $this->getState('filter.published'); en el que publishhed valía 0 o 1 en función de si estaba o no publicado.
He intentado explicarme lo más claro posible, pero no se si lo he conseguido (:: , agradecería cualquier tipo de aclaración de alguien que programe habitualmente extensiones en Joomla.
Gracias de antemano.
Mil gracias de antemano.