Petit outil clé-en-main pour bien démarrer l’année universitaire…
Nous avons repris l’excellent billet de Lully pour l’adapter à notre catalogue absysNET et proposer une extension du navigateur Chrome permettant d’afficher, pour une requête Google, le nombre de résultats dans le catalogue local. Voici ce que cela donne en image :

Nous ne reprenons pas ici toutes les étapes de constitution de l’extension, puisque Lully l’a très bien fait. Nous nous contentons de livrer les fichiers adaptés aux catalogues absysNET (merci Mathieu) dans lesquels vous pourrez modifier les url et les libellés.
1. Récupérer l’ensemble des fichiers nécessaires
Nous avons mis à disposition sur notre serveur le fichier .zip qui contient les fichiers à modifier. Assurez-vous que vous pourrez placer sur un serveur PHP le script nb_res_bcu.php pour faire vos tests. Dézippez puis modifiez les codes comme suit.
- Script nb_res_bcu.php (pour “nombre de résultats BCU”) : vous pourrez bien entendu renommer vos fichiers en changeant sudoc ou bcu le cas échéant.
function getUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$res=curl_exec($ch);
curl_close($ch);
return $res;
}
// Cette page va passer une requête au catalogue
//BCU pour récupérer le nombre de résultats
if (!isset($_GET['q']))
{
print "Manque la requête en paramètre";
exit;
}
$q = $_GET['q'];
$q = str_replace(" ", "+", $q);
// On récupère la page correspondant
//au résultat de cette requête
$url = "http://195.221.120.229/cgi-bin/abnetclop?ACC=DOSEARCH&xsqf99=".$q;
$res = getUrl($url);
if (preg_match('/URL=(.*)"/', $res, $match))
$new_url = 'http://195.221.120.229'.$match[1];
$res = getUrl($new_url);
$tab_sortie = Array();
if (preg_match(
'/Enregistrementss[0-9]+/[0-9]+sdes([0-9]+)/', $res, $match
))
$tab_sortie["nb"] = $match[1];
else
$tab_sortie["nb"] = 0;
print json_encode($tab_sortie);
Vous devez ici changer l’url de requête vers l’OPAC absysNET en modifiant la racine du serveur (votre adresse IP ou nom de domaine). La suite de l’url correspond aux paramètres de requête tout champ d’absysNET. Les lignes
if (preg_match('/URL=(.*)"/', $res, $match))
$new_url = 'http://195.221.120.229'.$match[1];
constituent une particularité d’absysNET car la page de requête génère une redirection (une page intermédiaire avant la page de résultats). Là aussi, modifiez la racine.
'/Enregistrementss[0-9]+/[0-9]+sdes([0-9]+)/', $res, $match
Cette ligne permet au script de déterminer, dans la page de résultats absysNET, où se trouve affiché le nombre de résultats. Si vous n’avez pas modifié le template standard de l’OPAC, pas de problème. Si oui, il faudra modifier la ligne de code en remplaçant tous les termes qui entourent votre nombre de résultats.
Vous pouvez maintenant déposer nb_res_bcu.php sur votre serveur PHP, de préférence dans un répertoire comme /BcuInGoogle/ puis faire des tests avec des requêtes comme http://biuintra.univ-bpclermont.fr/BcuInGoogle/nb_res_bcu.php?q=orwell. Vous vérifiez que le nombre de résultats est correct.
- Fichier background.html
Vous modifiez l’url du script que vous venez de déposer (ligne 27)
var url = 'http://biuintra.univ-bpclermont.fr/BcuInGoogle/nb_res_bcu.php?q='+q;
- Fichier sudoc_in_google.js
Vous modifiez les libellés relatifs à votre bibliothèque (lignes 22 et 32), l’icône logo.png qui se trouve dans le répertoire img de l’extension (remplacez par votre image 48 x 48), ainsi que l’url de requête vers l’OPAC (ligne 26).
- Fichier manifest.json
Personnalisez votre extension en modifiant les lignes 2 et 4 et remplacez le nom de domaine de votre serveur à la ligne 17.
2. Empaqueter l’extension
Ouvrez Chrome et cliquez sur le bouton Clé anglaise. Dans le menu Outils, sélectionnez Extensions. Sur la page, ouvrez le mode développeur et cliquez sur le bouton Empaqueter l’extension. Choisissez le répertoire qui contient vos fichiers modifiés puis OK. 2 fichiers sont alors générés, dont un .crx qu’il faut placer sur votre serveur de manière à proposer le téléchargement de l’extension comme la nôtre !
Une limite importante à l’usage
L’extension fonctionne très bien sur la première recherche Google (les résultats peuvent s’afficher cependant avec une certaine lenteur en fonction de votre OPAC). En revanche, on n’obtient aucun résultat catalogue lorsqu’on modifie la requête. On s’aperçoit en effet que l’url de la page Google ne se rafraîchit pas correctement, la première requête étant conservée dans l’url. Donc, il faut toujours revenir à la page d’accueil Google pour faire une nouvelle recherche et bénéficier des résultats catalogue.
OpenEdition vous propose de citer ce billet de la manière suivante :
Raphaële Bussemey (12 septembre 2011). AbsysNET dans Chrome. L'Alambic numérique. Consulté le 15 janvier 2026 à l’adresse https://doi.org/10.58079/axuq
Bonjour,
je me suis replongé sur cette question dans le cadre d’un autre projet et une solution est de surveiller l’évènement DOMAttrModified et de lancer le recalcul lorsque event.target.id vaut foot (correspond à
window.addEventListener(‘DOMAttrModified’, function (event) {
if (event.target.id == ‘foot’) {
// relancer la mise à jour;
}
}, false);
J’ai trouvé cela dans un script sur userscripts : http://userscripts.org/scripts/review/105982 et ça a l’air de fonctionner à première vue.
Super ! On va modifier cela. Avez-vous modifié votre extension Sudoc ?
Pas pour le moment non, j’avais fait cette extension plus comme une proof of concept, je suis en train de développer quelque chose d’un peu plus complet sur notre nouveau catalogue babord+, j’ai commencé par une extension Firefox, je la porterai surement sur Chrome par la suite.
Bonjour,
félicitations pour cette adaptation ! J’avais en effet identifié ce bug de changement de page et tenté de le résoudre mais ces essais étaient restés vains.
Cette nouvelle implémentation m’incite à chercher à nouveau. Si vous trouvez des pistes de votre côté ça m’intéresserait de les connaître.
Sylvain