J'ai créé un composant personnalisé à partir du site Web créateur de composant. Je souhaite maintenant ajouter des outils de recherche à ce composant, comme le propose le composant de recherche fourni dans la recherche d'article. Quelqu'un peut-il me guider à partir duquel je peux ajouter cette fonctionnalité?.
Ce que j'ai fait est d'ajouter un code de filtre personnalisé à view.html.php
comme indiqué ci-dessous:
$db = JFactory::getDbo();
$query = "SELECT DISTINCT countryname as x FROM sugee_sugee_country where state=1 ORDER BY id ASC";
$db->setQuery($query);
$rows = $db->loadObjectList();
$options = array();
$this->state->get('filter.countryname');
foreach ($rows as $row) {
$options[] = JHtml::_('select.option', "$row->x", JText::_($row->x));
}
JHtmlSidebar::addFilter(
'- Select Country -',
'countryname',
JHtml::_('select.options',$options,'value', 'text', $this->state->get('filter.countryname'), false));
Mon problème est que cela ne fonctionne pas correctement, il actualise toujours la page et il enregistre son état comme si je sélectionnais INDE, il devrait enregistrer INDE par défaut. mais cela ne fonctionne pas et les enregistrements ne s'affichent pas non plus correctement.
Je dois créer d'autres fichiers pour cela ou j'ai ajouter du code ou une fonction n'importe où ailleurs?
S'il vous plaît guider.
Je pense que vous êtes à mi-chemin. Examinez votre modèle de composants pour la fonction getListQuery (). C'est à cet endroit que le filtre sera appliqué à la liste avant qu'il ne soit renvoyé à la vue.
Dans le même fichier se trouve une fonction populateState () où vous pouvez obtenir filter.countryname à partir de la demande et le définir avant que la page ne soit affichée.
Regardez comment cela se fait dans com_content/models/articles.php pour savoir comment l’appliquer à votre code.
C'est probablement une réponse tardive, mais cela pourrait aider les personnes qui cherchent à ajouter des outils de recherche sur la vue liste dans le backend de Joomla.