lorsque nous étendons JmodelList pour gérer la liste de données dans notre fonction List_Model in construct, nous définissons filter_fields dans le tableau de configuration comme
$config[filter_fields]=array('field1','a.field1','field2','a.field2');
parent::__construct($config);
je me pose des questions sur la structure de définition du tableau filter_fields dans le tableau de configuration
why we define every fields two time and how they will be used by joomla.?
La liste des champs de filtrage est une option de configuration à des fins de commande. Il s'agit d'une liste blanche de noms de champs dont l'utilisation est autorisée dans les requêtes. Vous pouvez donc utiliser par exemple a.field1 comme requête spécifique.
Donc, à votre avis, vous écrivez quelque chose comme ceci:
<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'name', $listDirn, $listOrder); ?>
Comme nous pouvons le constater, dans le troisième argument de cette méthode, nous appliquons le nom de la colonne que nous voulons classer, et nous pourrions ici spécifier une table comme p.name
_ s'il s'agit du nom d'une table jointe appelée personnes.
Tous les deux field1
et a.field1
sont ajoutés éventuellement pour que quelqu'un d'autre veuille utiliser ce modèle, ou pour spécification, comme dans l'exemple suivant:
<?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'p.name', $listDirn, $listOrder); ?>