Dans le premier article, nous nous sommes familiarisés avec les capacités du composant de recherche intelligente Joomla, avons parlé des paramètres et de la configuration de l'indexation planifiée à l'aide de CRON. Et dans le deuxième article, nous avons commencé à coder notre plugin personnalisé pour le composant de recherche intelligente Joomla. Alors finissons-en !
Cette méthode doit adapter les données obtenues à partir de la base de données afin de les soumettre à l'indexation. Comme argument, le$articleélément (article, produit, balise, etc.) lui est transmis en tant que classe d'instance du\Joomla\Component\Finder\Administrateur\Indexeur\Résultatclasse. Les propriétés de$articlecorrespondent à ceux que nous avons sélectionnés dans la base de données. Le but ultime de cette méthode est d'appeler$this->indexer->index($item).
Vous devez comprendre à quoi ressembleront les résultats de la recherche afin de comprendre quoi comparer avec quoi. Structure des résultats de recherche intelligente Joomla 5
Ici, je prends les noms directement du code. Dans ce cas, les images ne sont pas affichées dans les résultats de recherche, mais elles y sont également -$this->result->imageUrl.
Ainsi, nous avons peu de données visibles par l'utilisateur - seulement 4 types. Et nous obtenons plus de données de la base de données. Nous devons comprendre lesquels d'entre eux seront disponibles pour l'indexation par recherche et lesquels seront uniquement affichés.
Voici le code duindice()méthode avec commentaires.
?php /** * Method to index an item. The item must be a Result object. * * @param Result $item The item to index as a Result object. * * @return void * * @throws \Exception on database error. * @since 2.5 */ protected function index(Result $item) { // Setting the language of the indexed element - the default language of the site $item-setLangue(); // Vérifiez si JoomShopping est activé dans Joomla. if (ComponentHelper::isEnabled($this->extension) === false) { return; } // Nous reprenons une partie des chemins d'accès aux images à partir des paramètres du composant. $this->loadJshopConfig(); // Définition du contexte d'indexation $item->context = 'com_jshopping.product'; // Nous collectons tous les paramètres en un seul paquet : le composant de recherche, JoomShopping et le site. // Ils seront disponibles dans la présentation de sortie $registry = new Registry($item->params); $item->params = clone ComponentHelper::getParams('com_jshopping', true); $item->params->merge($registry); $item->params->merge((new Registry($this->jshopConfig))); // Métadonnées : méta-mots-clés, méta description, auteur, // valeurs d'index/sans index pour les robots $item->metadata = new Registry($item->metadata); // Traitez le contenu avec les plugins de contenu - l'événement onContentPrepare. // Les plugins de contenu ont toujours une vérification du contexte. // S'il est égal à 'com_finder.indexer', alors les plugins de contenu ne fonctionneront généralement pas. // SEUL LE TEXTE doit être donné pour l'indexation. // Ni les images ni les vidéos YouTube ne doivent y arriver, donc // le contenu indexé sera débarrassé des balises HTML. // Les codes courts bruts ne sont que du texte et peuvent // entrer dans les résultats de recherche. $i...
[Courte citation de 8% de l'article original]