J'apprends le développement de Joomla Extension et je substitue la méthode getListQuery()
d'un modèle qui étend JModelList
.
Maintenant, le problème est que nous pouvons récupérer une liste de données de la base de données en utilisant ce qui suit:
$ db = $ this-> getDbo (); $ query = $ db-> getQuery (true); $ query-> select ('id, titre, état , société ') -> à partir de ($ db-> quoteName (' #__livres ')));
Mais mon ebook utilise la déclaration suivante
$ requête-> sélectionner ( $ this-> getState ('list.select', 'a.id, a.title,' .'a.state, a.company ')) ;
Je comprends la méthode
getState()
mais pourquoi l'auteur de l'ebook utilise-t-ilgetState()
dans l'instruction select? Quel est le but d'utiliser cela et où la propriété 'list.select' sera définie?
L'utilisation de state dans l'instruction select permet aux extensions externes d'utiliser votre méthode individuellement et d'obtenir différents ensembles de données.
Un bon exemple est mod_articles_news
module helper qui définit les champs à sélectionner dans le modèle d’article:
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
...
$model->setState('list.select', 'a.fulltext, a.id, a.title, a.alias, a.introtext, a.state, a.catid, a.created, a.created_by, a.created_by_alias,' .
' a.modified, a.modified_by, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access,' .
' a.hits, a.featured, a.language');
...
$items = $model->getItems();