web-dev-qa-db-fra.com

Comment ajouter des outils de recherche personnalisés pour un composant personnalisé

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.

1
Info Truth

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.

2
John Pitchers

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.

tilisation des 'Outils de recherche' sur Joomla 3.x dans le backend de l'administrateur pour les vues de liste

1
Manoj L