Je suis en train de regarder de près les boucles avec le critère recherche.
Je veux générer une pagination pour afficher les résultats (c'est encore des bouts de PHP mais c'est léger). J'ai donc la boucle suivante :
<h2>Résultat de la recherche de « #RECHERCHE »</h2>
<BOUCLE_nb(ARTICLES){recherche}{id_secteur=3}{age_redac<=0}></BOUCLE_nb><?php $pagination = pagination('#TOTAL_BOUCLE',10,$debut_resultat,'recherche-%s.html?recherche=#RECHERCHE') ?><//B_nb>
<?php echo $pagination ?>
Je suis en train de regarder de près les boucles avec le critère
recherche.
Je veux générer une pagination pour afficher les résultats (c'est
encore des bouts de PHP mais c'est léger). J'ai donc la boucle suivante
:
<h2>Résultat de la recherche de « #RECHERCHE »</h2>
<BOUCLE_nb(ARTICLES){recherche}{id_secteur=3}{age_redac<=0}></
BOUCLE_nb><?php $pagination =
pagination('#TOTAL_BOUCLE',10,$debut_resultat,'recherche-%s.html?
recherche=#RECHERCHE') ?><//B_nb>
<?php echo $pagination ?>
ma variable $pagination n'est pas affectée
....
si j'enlève le critère recherche, les 3 boucles donnent le résultat
attendu
Tout se passe comme si une boucle avec le critère recherche ne
renvoyait rien s'il n'y a pas une balise #QUELQUECHOSE dedans
C'est curieux
C'est un bug, c'est corrigé mais ce n'est pas curieux.
L'ancien compilateur n'analysait pas le corps de la boucle,
ce qui fait qu'une boucle sans balise #QQCH, qui ne sert qu'à calculer le nombre N d'éléments
conformes aux critères, était compilé par N appels au serveur SQL, alors qu'un unique appel
avec COUNT ou numrows suffit (je pense que ça été la raison de l'écroulement du serveur qui
gérait la pétition Sauvons La Recheche, dès qu'elle a commencé à avoir du succès).
Le nouveau compilateur analyse ce corps et fait automatiquement cette optimisation s'il n'y pas
de balise dans le corps. J'avais malheureusement mal géré le critère recherche dans le cas du corps
sans balise, c'est donc réparé.
Inutile de t'excuser on essuie un peu les plâtres mais c'est avec des tests grandeur que l'on tombe sur les bugs
Sinon, je suis enchanté des nouvelles possibilités de personnalisation du compilo. J'ai redéfini la balise #FORMULAIRE_RECHERCHE pour rajouter un onfocus et un onblur, ça marche du tonnerre.
boah, c'est pas compliqué, tu repères la fct balise_FORMULAIRE_RECHERCHE_dist dans le code de SPIP, tu copies-colles dans mes_fonctions.php3, tu retires le _dist et tu transformes ce qui est affecté à $formulaire_recherche avec les \ de \ qui vont bien et le tour est joué
function balise_FORMULAIRE_RECHERCHE($p) {
if ($p->fonctions) {
list(, $lien) = each($p->fonctions); // le premier est un url
while (list(, $filtre) = each($p->fonctions))
$filtres[] = $filtre; // les suivants sont des filtres
$p->fonctions = $filtres;
}
if (!$lien) $lien = 'recherche.php3';
et dans inc-formulaire2.php3 j'ai modifier le code générer par le formulaire mais ça semble pas fonctionner par contre pour le moteur de recherche effectivement sa marche sans probleme