Hello,
Je te réponds sur le thread d’origine pour éviter de s’éparpiller (cf. https://forum.spip.net/fr_268295.html)
Le tutoriel d’erational est toujours d’actualité, il y a un seul point qui a changé avec les dernières versions de SPIP, c’est le chemin des scripts jqueryui. Il vaut mieux utiliser le pipeline dédié pour charger ces scripts, comme ça on a pas à se soucier du chemin.
1) Dans ton fichier mes_options.php, ajoute ceci :
@$GLOBALS['spip_pipeline']['jqueryui_plugins'] .= "|insert_jqueryui";
function insert_jqueryui($flux) {
$flux[] = 'jquery.ui.autocomplete';
return $flux;
}
2) Visite la page des plugins pour vider le cache.
3) Crée un fichier autocomplete.html qui va récupérer les valeurs de l’autocomplete
#HTTP_HEADER{Content-Type: text/plain; charset=#CHARSET}
[<BOUCLE_arts(ARTICLES){titre LIKE %#ENV{term}%}{par titre}{","}{0,10}>{"id":#ID_ARTICLE,"label":[(#TITRE|json_encode)],"value":[(#TITRE|json_encode)],"url_article":[(#URL_ARTICLE|json_encode)]}</BOUCLE_arts>]
Tu auras peut-être des résultats plus pertinents si change les critères {titre LIKE %#ENV{term}%}{par titre}
par {recherche #ENV{term}}{par points}
4) Ajoute le script dans ton squelette qui contient l’input de recherche (avec l’id #recherche)
<script type="text/javascript">
$(function() {
$( "#recherche").autocomplete({
source: "spip.php?page=autocomplete",
minLength: 2,
delay: 500,
select: function (event, ui){
if (typeof ui.item.url_article != "undefined") {
window.location = ui.item.url_article;
}
}
});
});
</script>
Si tu ne souhaites pas que le clic renvoie vers la page de l’article, enlève la partie select: function()...
Voilà, chez moi ça marche©™