SpipClear : Correctif problème moteur de recherche

dimanche 4 février 2007

SPIP / SpipClear

Dans les commentaires d’un billet précédent Raphaël me faisait remarquer que le moteur de recherche ne fonctionnait pas depuis la page d’un post si on utilise les urls propres.

Pour régler le problème il faut modifier le fichier article-x.html (ou x est le numéro du secteur de votre blog) dans le dossier squelette. Ce fichier est fourni dans l’archive scStarter : SpipClear v2.0+facilités de mise en place disponible sur SpipContrib.

<BOUCLE_article(ARTICLES){id_article}><INCLURE(page.php3){fond=layout}
{id_article}
{id_secteur}
{date}
{recherche}></BOUCLE_article>

A transformer en :

<BOUCLE_article(ARTICLES){id_article}><INCLURE(page.php3){fond=layout}
{id_article}
{id_secteur}
{id_rubrique}
{date}
{recherche}></BOUCLE_article>

Vu que l’id_rubrique n’était pas passée au fichier layout.html dans le cas de l’affichage d’un post, l’action du formulaire de recherche devenait rubrique.html au lieu de rubrique1.html (si le post est dans la rubrique 1). Et on arrivait sur une erreur 404 si on lançait une recherche depuis un article.

Cette manip corrige aussi le fait que le nom de la rubrique dans laquelle se trouve un post n’était pas mis en "strong" dans la partie catégorie de la sidebar lors de l’affichage d’un article.

Il m’aura fallu quelques temps pour trouver cette solution et l’aide de la web developper toolbar de firefox n’était pas de trop (surtout pour afficher les détails des formulaires). N’oublions pas le mode debug de Spip qui est vraiment une petite merveille.

Remarque : j’ai l’impression que ce correctif provoque des problèmes lorsqu’on ajoute des commentaires aux articles (problème de recalcul de page après validation du message). Si vous rencontrez des problèmes de ce type merci de me le signaler ici.

Vos commentaires

  • Raphaël

    Apparement, pas de soucis sur mon blog.

    Merci pour tout !

    Par contre, la pagination, c’est toujours pas bon, ni sur ton site ni sur le mien ...

    5 février 2007, 21:39

  • Raphaël

    Je m’y suis remis et j’ai enfin trouvé une solution au problème de pagination.

    A voir sur mon blog

    11 mars 2007, 17:21

  • bb

    Bonjour Raphaël,

    Content que tu aies aussi réglé ton problème, et hop deux solutions pour le prix d’une ;-)

    11 mars 2007, 18:35

  • Dan

    Il me semble que tu as aussi un pb de strong, cette fois-ci dans la sidebar : quand on appelle la liste d’archives d’un mois donné, aucun mois n’est en bold dans la sidebar.

    5 décembre 2007, 13:17

  • Dan

    Le problème est là dans sidebar : #ENV{date} perd sa valeur après être entré dans la boucle chrono dans le contexte de l’appel d’un mois d’archives, donc la comparaison avec (#DATE|affdate{'Y_m'}|choixsiegal{[(#ENV{date}|affdate{'Y_m'}) n’est jamais vraie, et le strong disparait...
    je sèche...

    5 décembre 2007, 17:16

  • bb

    Bonjour Dan,

    J’ai étudié le problème sur mon site et cela ne fonctionne pas à cause du filtre affdate. En effet le code suivant affiche 1970_01 (début des dates générées par timestamp de PHP) au lieu de la date passée au squelette :

    [(#DATE|affdate{'Y_m'})]

    Ce qui est étrange c’est que l’erreur ne se produit que sur mon site en ligne et non pas sur le même site en local. La différence entre les deux est la version de PHP utilisée (version 5 en local et version 4 en ligne). Bref, j’ai des pistes et je continue mon "enquête". Je posterai l’info ici dès que j’aurai trouvé la solution.

    Bon courage ++

    6 décembre 2007, 12:42

  • Dan

    en fait #ENV{date}|affdate{'Y-m'} renvoie n’importe quoi quand la date est déjà sous la forme Y-m
    j’ai trouvé le code suivant qui marche (désolé, je ne connais pas bien spip, et je n’ai pas trouvé comment faire un ou logique dans la boucle :-/ ) ça doit sans doute pouvoir s’améliorer

    <BOUCLE_chrono(ARTICLES){lang_select=non}{id_secteur}{par date}{inverse}>
                            [<li>[(#DATE|affdate{'Y-m'}|=={#ENV{date}|affdate{'Y-m'}}|?{<strong>,''})][(#DATE|affdate{'Y-m'}|=={#ENV{date}}|?{<strong>,''})]               
                            <a href="[(#ENV{self}|parametre_url{archives,[(#DATE|affdate{'Y-m'})]})]">(#DATE|affdate_mois_annee|unique)</a>
                            [(#DATE|affdate{'Y-m'}|=={#ENV{date}|affdate{'Y-m'}}|?{</strong>,''})][(#DATE|affdate{'Y-m'}|=={#ENV{date}}|?{</strong>,''})] </li>]
                            </BOUCLE_chrono>

    6 décembre 2007, 14:42

Répondre à cet article

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.