Bonjour,
je désire enregistrer dans une table de la bdd l'historique des requêtes de recherche. Pour ce faire, j'ai créé un plugin perso de recherche (en copiant le plugin natif search content), et j'ai rajouté dans la fonction 'onContentSearch' du code permettant d'enregistrer les données dans une table dédiée. Il s'avère qu'à chaque requête de recherche deux nouvelles lignes sont créées dans la table, l'une avec la requête, l'autre avec le texte 'undefined'.
J'ai d'abord pensé qu'il s'agissait d'un problème de base, mais en plaçant un 'die' juste après l'insert dans la base, il y a bien une seule ligne créée (avec la bonne requête). J'en ai conclu qu'en fait la fonction 'onContentSearch' était appelée deux fois lors d'une recherche. J'ai donc placé un 'echo' permettant l'affichage de la requête et retiré le 'die', puisque du coup, au deuxième passage, le texte de la requête devrait être 'undefined' puisque c'est ce qui est mémorisé au deuxième passage. Hé bien pas du tout, en frontoffice, c'est bien le texte de la requête qui est affiché, comme s'il n'y avait qu'un passage.
Du coup, je me suis dit que c'était mon plugin qui était naze, et j'ai donc testé directement dans le plugin
/search/content/content.php. Le résultat est identique.
Mon problème est donc que l'enregistrement dans la base de données montre qu'il y a deux appels à la fonction onContentSearch (j'ai bien entendu activé qu'un seul plugin de recherche à la fois) et que l'instruction' echo' me dit le contraire.
Bravo à ceux qui auront eu le courage de lire jusqu'ici, mon admiration à ceux qui auront compris ce que je voulais dire, et ma reconnaissance à ceux qui pourront m'aider !
je désire enregistrer dans une table de la bdd l'historique des requêtes de recherche. Pour ce faire, j'ai créé un plugin perso de recherche (en copiant le plugin natif search content), et j'ai rajouté dans la fonction 'onContentSearch' du code permettant d'enregistrer les données dans une table dédiée. Il s'avère qu'à chaque requête de recherche deux nouvelles lignes sont créées dans la table, l'une avec la requête, l'autre avec le texte 'undefined'.
J'ai d'abord pensé qu'il s'agissait d'un problème de base, mais en plaçant un 'die' juste après l'insert dans la base, il y a bien une seule ligne créée (avec la bonne requête). J'en ai conclu qu'en fait la fonction 'onContentSearch' était appelée deux fois lors d'une recherche. J'ai donc placé un 'echo' permettant l'affichage de la requête et retiré le 'die', puisque du coup, au deuxième passage, le texte de la requête devrait être 'undefined' puisque c'est ce qui est mémorisé au deuxième passage. Hé bien pas du tout, en frontoffice, c'est bien le texte de la requête qui est affiché, comme s'il n'y avait qu'un passage.
Du coup, je me suis dit que c'était mon plugin qui était naze, et j'ai donc testé directement dans le plugin
/search/content/content.php. Le résultat est identique.
Mon problème est donc que l'enregistrement dans la base de données montre qu'il y a deux appels à la fonction onContentSearch (j'ai bien entendu activé qu'un seul plugin de recherche à la fois) et que l'instruction' echo' me dit le contraire.
Bravo à ceux qui auront eu le courage de lire jusqu'ici, mon admiration à ceux qui auront compris ce que je voulais dire, et ma reconnaissance à ceux qui pourront m'aider !
Commentaire