[SPIP Zone] couteau suisse decoupe page et surligne recherche incompatibles ?

Bonsoir,

Sur une 192 dernière version
J’active le couteau suisse et la lame Découpe en page et onglet
Résultat le surlignement de smots recherches ne fonctionne plus.
En creusant j’ai vu que la varible var_recherche qui envoie la chaine recherchée et qui est présente dans les url de résultats de recherche devient decoupe_recherche un fois le lien cliqué.
Je vois un traitement spécifique dans
http://zone.spip.org/trac/spip-zone/browser/plugins/stable/couteau_suisse/outils/decoupe_fonctions.php#L128

Mais il n’a l’air d’être appliqué que s’il y a plusieurs page => sur un article non paginée on perd le surlignage.
je pense qu’il y a d’autres cas, car il y a pas mal de return en cours de route dans la fonction decouper_en_pages_rempl
(à commencer par le premier)
Mais je ne sais pas où quelle est la façon optimale de gérer

  • rajout du traitement
    if (isset($_GET[‹ decoupe_recherche ›])) {
    include_spip(‹ inc/surligne ›);
    $texte = surligner_mots($texte, $_GET[‹ decoupe_recherche ›]);
    }

    avant chaque return intermédaire

  • ou traitement plus global après l’appel des découpage ??

a+

Arnaud

Arnaud Ventre a écrit :

Mais il n'a l'air d'être appliqué que s'il y a plusieurs page => sur un article non paginée on perd le surlignage.
je pense qu'il y a d'autres cas, car il y a pas mal de return en cours de route dans la fonction decouper_en_pages_rempl
(à commencer par le premier)
Mais je ne sais pas où quelle est la façon optimale de gérer
- rajout du traitement
<code>if (isset($_GET['decoupe_recherche'])) { include_spip('inc/surligne');
        $texte = surligner_mots($texte, $_GET['decoupe_recherche']);
    }
</code>
avant chaque return intermédaire

- ou traitement plus global après l'appel des découpage ??

Ah oui, tu as sans doute raison sur ce coup là.
La méthode ici n'est peut-être pas la meilleure...

Au niveau de mes_options (ligne 438 de config_outils.php), le code suivant est systématiquement appliqué :

  'code:options' => "define('_onglets_FIN', '<span class=\'_fooonglets\'></span>');@define('_decoupe_SEPARATEUR', '++++');
if (isset(\$_GET['var_recherche'])) {
  include_spip('inc/headers');
  redirige_par_entete(str_replace('var_recherche=', 'decoupe_recherche=', \$GLOBALS['REQUEST_URI']));
}",

Pat

Le 07/02/08, Pat <patfr@ifrance.com> a écrit :

Arnaud Ventre a écrit :

Mais il n’a l’air d’être appliqué que s’il y a plusieurs page => sur un
article non paginée on perd le surlignage.
je pense qu’il y a d’autres cas, car il y a pas mal de return en cours
de route dans la fonction decouper_en_pages_rempl
(à commencer par le premier)
Mais je ne sais pas où quelle est la façon optimale de gérer

  • rajout du traitement
    if (isset($_GET[‹ decoupe_recherche ›])) {
    include_spip(‹ inc/surligne ›);
    $texte = surligner_mots($texte, $_GET[‹ decoupe_recherche ›]);
    }

    avant chaque return intermédaire

  • ou traitement plus global après l’appel des découpage ??

Ah oui, tu as sans doute raison sur ce coup là.
La méthode ici n’est peut-être pas la meilleure…

J’ai testé le bout code ci dessus mais en fait marche pas j’ai l’impression que je ne passe pas dedans.
Faudra que je creuse plus pour lister les différents cas possible,
Tu utilise quelle fonction pour les logs couteaux suisses , je vais me rajouter quelques traces pour tester ?

a+

Arnaud

Arnaud Ventre a écrit :

J'ai testé le bout code ci dessus mais en fait marche pas j'ai l'impression que je ne passe pas dedans.
Faudra que je creuse plus pour lister les différents cas possible,
Tu utilise quelle fonction pour les logs couteaux suisses , je vais me rajouter quelques traces pour tester ?

tu as : cs_log('toto')
il y a aussi le parametre d'url : cs=log, ou en echo : cs=report ou cs=reportall

Pat