resultat de recherche surligné et pagination ajax #4217

Open
opened 3 years ago by maieul · 11 comments
maieul commented 3 years ago
  • Soit un formulaire de recherche
  • soit les réglages suivant dans mes_options.php

if (isset($_REQUEST['recherche'])) { $_GET['var_recherche'] = $_REQUEST['recherche']; }

  • soit un classe "surlignable" sur chaque résultat de recherche
  • soit des résultats de recherche paginée
  • soit une pagination en ajax

Lorsqu'on passe en ajax d'une page à l'autre, le surlignage est perdu.

- Soit un formulaire de recherche - soit les réglages suivant dans mes_options.php ` if (isset($_REQUEST['recherche'])) { $_GET['var_recherche'] = $_REQUEST['recherche']; } ` - soit un classe "surlignable" sur chaque résultat de recherche - soit des résultats de recherche paginée - soit une pagination en ajax Lorsqu'on passe en ajax d'une page à l'autre, le surlignage est perdu.
b_b commented 3 years ago
Owner

Version 3.2 je suppose ?
Version cible mise à 3.2

Version 3.2 je suppose ? **Version cible mise à 3.2**
Poster

oui

oui
Owner

Assez probable que ça se passe autour de la ligne 77 de inc/surligne.php qui ajoute du JS, où il faudrait relancer la fonction avec onAjaxLoad(), si celle-ci le permet.
https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/surligne.php#L77

Quelque chose comme :

      if (window.jQuery) {
        var highlighter = function() {
            jQuery(function($){
                $(document).SearchHighlight({
                    // ...
                });
            });
        }
        highlighter();
        onAjaxLoad(highlighter);
     }

Non testé, évidemment...

Assez probable que ça se passe autour de la ligne 77 de inc/surligne.php qui ajoute du JS, où il faudrait relancer la fonction avec onAjaxLoad(), si celle-ci le permet. https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/surligne.php#L77 Quelque chose comme : <pre> if (window.jQuery) { var highlighter = function() { jQuery(function($){ $(document).SearchHighlight({ // ... }); }); } highlighter(); onAjaxLoad(highlighter); } </pre> Non testé, évidemment...

Merci marcimat, il se trouve que ça semble bien fonctionner... je tente une PR...

Merci marcimat, il se trouve que ça semble bien fonctionner... je tente une PR...
Owner

faudrait une catégore "moteur de recherche" car on a une palanquée de bug dessus :p
Version cible mise à 4.1

faudrait une catégore "moteur de recherche" car on a une palanquée de bug dessus :p **Version cible mise à 4.1**
Owner

Voici le fichier modifié et testé en surcharge inc/surligne.php

J'ai repris le code de SPIP4 et modifié suivant la proposition de marcimat, ça fonctionne sur une recherche lors du Ajaxreload sur un SPIP 3.2.11 [24473]

Merci de l'intégrer, je ne vois pas à quel endroit je dois le faire :)
++
touti

Voici le fichier modifié et testé en surcharge inc/surligne.php J'ai repris le code de SPIP4 et modifié suivant la proposition de marcimat, ça fonctionne sur une recherche lors du Ajaxreload sur un SPIP 3.2.11 [24473] Merci de l'intégrer, je ne vois pas à quel endroit je dois le faire :) ++ touti
touti closed this issue 2 weeks ago
touti reopened this issue 2 weeks ago
Owner

Oups, j'avois fermé et revoici le fichier en .txt

Oups, j'avois fermé et revoici le fichier en .txt
b_b commented 2 weeks ago
Owner

@touti je viens de tenter de générer un diff à partir de ton fichier joint. Mis à part les différences d'espaces/tabulations, je vois d'autres diffs, par exemple la disparition de })(jQuery); ici https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/surligne.php#L92 pourtant présent aussi en 3.2 cf https://git.spip.net/spip/spip/src/branch/3.2/ecrire/inc/surligne.php#L77

Tu peux nous envoyer ça au propre dans une PR sur la branche master pour commencer ?

@touti je viens de tenter de générer un diff à partir de ton fichier joint. Mis à part les différences d'espaces/tabulations, je vois d'autres diffs, par exemple la disparition de `})(jQuery);` ici https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/surligne.php#L92 pourtant présent aussi en 3.2 cf https://git.spip.net/spip/spip/src/branch/3.2/ecrire/inc/surligne.php#L77 Tu peux nous envoyer ça au propre dans une PR sur la branche master pour commencer ?
Owner

Oui bien sur, je le fais, mais SPIP4 et JQuery c'est pas fini ?
Là, le fichier peut tourner sur SPIP3 sans souci en tout cas.

Oui bien sur, je le fais, mais SPIP4 et JQuery c'est pas fini ? Là, le fichier peut tourner sur SPIP3 sans souci en tout cas.
b_b commented 2 weeks ago
Owner

Non, c'est jQuery UI qui est sorti du core, jQuery est toujours présent ;)

Non, c'est jQuery UI qui est sorti du core, jQuery est toujours présent ;)
Owner

Rooo, ma première PR, c'est pas beau ça :)

Rooo, ma première PR, c'est pas beau ça :)
Sign in to join this conversation.
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.