Enrichissement de l'OPAC

L'avantage de Koha sur beaucoup d'autres SIGB est qu'il permet aisément d'enrichir le catalogue en ligne avec des données extérieures en créant des connecteurs. Mais, il est aussi possible d'exploiter les données bibliographiques de Koha afin de proposer d'autres affichages des données.

J'ai ainsi voulu afficher sous la notice détaillée d'un document des suggestions d'ouvrages susceptibles d'intéresser le lecteur en fonction de l'indexation de la notice en question. Certes, le lecteur aurait pu revenir à la page de résultats de sa requête ou cliquer sur l'un des rebonds "sujets". Mais ce peut être ainsi l'occasion de valoriser des ouvrages récents, des nouvelles acquisitions portant sur le même sujet, en proposant un certain nombre de références. Je me suis pour l'instant limité à cinq documents.

Comment ai-je procédé? J'ai, dans un premier temps, codé un script PHP dans lequel je récupère l'indexation sujet de la notice affichée. Je récupère uniquement les 606 $a.

$sql = mysql_query("SELECT extractValue(marcxml, "//datafield[@tag=\'606\']/subfield[@code=\'a\']") as subject FROM biblioitems WHERE biblionumber = '".$_GET['id']."' ");

J'effectue ensuite un traitement des termes récupérés (suppression des parenthèses, etc.).

Je lance une requête dans les tables biblio et biblioitems en m'intéressant uniquement au champ marcxml de la table biblioitems. La table biblio est nécessaire pour récupérer les titres des documents. Je n'utilise que les premiers termes de l'indexation sujet afin d'obtenir des résultats. Si l'on souhaite mettre en avant les nouveautés, on peut effectuer un tri DESC sur la date d'édition (il y a d'autres possibilités). J'insère ensuite les données dans un flux XML. De fait, le fichier PHP sert à créer un fichier XML. C'est lui qui sera exploité via AJAX et JQuery.

Ensuite, quelques ligne de JQuery sont à insérer dans les paramètres de l'OPAC, dans le champ dédié pour créer la connexion AJAX et récupérer les résultats du script PHP. C'est ici également que je précise où je souhaite faire apparaître les résultats et sous quelle forme.