Ma bibliothèque
Notes d’installation

Le catalogue en ligne de ma bibliothèque est réalisé à l’aide de deux applicatifs : Book Collector et DaDaBIK, et d’un hébergement comprenant un serveur Web (Apache), le langage PHP et un SGBD (MySQL, en l’occurrence).

Book Collector permet de cataloguer des livres, d’y effectuer des recherches et d’en gérer le prêt sur un ordinateur (Mac ou PC). J’en ai parlé ici. Ce logiciel offre, en outre, une fonctionnalité d’export des notices au format HTML, permettant ainsi de les mettre en ligne ; toutefois, ces pages sont statiques : elles consistent en des listes de titres qui fournissent l’accès aux notices individuelles, ce qui n’est pas commode pour y effectuer des recherches.

Book Collector permet aussi d’exporter tout ou partie du catalogue au format texte : cet export peut facilement être chargé dans une table d’une base de données MySQL. DaDaBIK est un logiciel réalisé en PHP, qui permet de créer l’interface Web à une base de données arbitraire.

Nous allons brièvement décrire les étapes de l’installation du catalogue en ligne, et de sa mise à jour.

Environnement Web

On suppose que la bibliothèque sera hébergée sur un ordinateur comprenant un serveur Web, MySQL et PHP (offre que l’on trouve en standard et gratuitement chez nombre d’hébergeurs).

En outre, on suppose que la bibliothèque sera stockée dans un répertoire appelé MaBibliotheque à la racine du serveur Web. C’est dans ce répertoire que l’on installera aussi Dadabik. On y accèdera donc par l’adresse

http://votreserveur.hebergeur.fr/MaBibliotheque.

Installation et adaptation de Book Collector

Ce logiciel s’installe sur son poste de travail. On supposera que ce dernier est un PC, et que le logiciel s’est installé dans le répertoire :

C:\Program Files\Collectorz.com\Book Collector

Modification du modèle de notice détaillée

Book Collector utilise des modèles (appelés templates) pour la mise en forme de ses exports, y inclus sous forme de notices en HTML. Comme on n’utilisera que les notices détaillées (et non pas les listes de notices) produites par Book Collector, il faudra modifier le modèle des notices détaillées utilisé pour l’export afin que le lien permettant de remonter de la notice à la liste des notices soit positionné correctement vers DaDaBIK.

Ce modèle est sélectionné via le menu Fichier → Exporter vers → HTML…, onglet Modèle de Détails. Le menu propose des noms détaillés de modèles et non pas le nom du fichier lui-même ; supposons qu’on ait choisi Vue détaillée, Gris/Jaune. Pour trouver le modèle correspondant, se rendre dans le répertoire :

C:\Program Files\Collectorz.com\Book Collector\Templates

Ce sera un fichier dont le nom est en général de la forme exportdetails_item_xxx.xsl – dans notre cas, exportdetails_item_gray.xsl. On peut le confirmer en vérifiant que le fichier au nom identique sauf l’extension, exportdetails_item_gray.cti, comprend une ligne commençant par <description langage='fr'> et comprenant le texte Vue détaillée, Gris/Jaune (où les caractères accentués sont remplacés par des &#233;).

Il faudra modifier le fichier modèle qu’on a identifié. L’ouvrir avec un éditeur de texte, et identifier la ligne qui comprend la chaîne de caractères suivante :

<xsl:value-of select="/bookinfo/localizedtemplatetexts/field[@id='ttUp']/@label"/>

Remplacer ce qui précède ce texte sur la même ligne par :

<a href="/MaBibliotheque/?function=search&amp;table_name=MaBibliotheque" class="link">

Choix des champs pour la base de données

La base de données comprendra les champs proposés à la recherche et affichés dans la liste des notices (ce qui est distinct de l’affichage détaillé de chaque notice, qui comprend beaucoup plus de champs).

Cette base est « nourrie » par l’export en mode texte, que l’on sélectionne via le menu Fichier → Exporter vers → Texte…, bouton Champs…. Dans notre exemple, on choisira les champs suivants, dans cet ordre : ID, Titre, Sous-titre, Auteur, Année, Editeur, ISBN, Langue, Genre.

Dans le panneau principal d’export vers format texte, on cochera l’ordre de tri désiré, Tabulation dans Séparateur, Guillemets dans Marqueur de texte et Ne pas remplacer dans Remplacer les fins de lignes par.

Création de la base de données

On suppose que l’on dispose d’une base de données MySQL, et qu’on utilise le logiciel phpMyAdmin pour la gérer (créer les tables, y importer des contenus, etc.).

Il faut maintenant y créer une nouvelle table, que l’on nommera aussi MaBibliotheque (ce n’est pas obligatoire, mais ça facilite pour s’y retrouver ; si l’on choisit un autre nom, il faut aussi changer le nom qui suit le table_name= dans le fichier modèle ci-dessus.

Cette table comprendra autant de champs que ceux qu’on a choisi d’exporter ci-dessus – 9 en l’occurrence. Le nom et le type des champs peut être comme suit :

Nom

Type

Null

Défaut

Clé

URL

varchar(128)

Non

 

Primaire

Titre

varchar(256)

Non

 

 

Sous-titre

varchar(512)

Oui

NULL

 

Auteur

varchar(256)

Non

 

 

Année

varchar(8)

Non

[s.d.]

 

Editeur

varchar(64)

Non

 

 

ISBN

varchar(12)

Oui

NULL

 

Langue

varchar(64)

Non

 

 

Genre

varchar(64)

Non

 

 

On remarquera qu’on a changé le nom de la première colonne, qu’on a appelé URL. La taille des champs (le chiffre suivant le « varchar ») dépend des données que l’on a ; si elles sont plus longues que les champs, elles seront tronquées (on peut décider de choisir ce mode de fonctionnement, ou de sélectionner une taille suffisamment grande des champs).

Il faut aussi créer un utilisateur qui ait les droits de select, insert, update, delete, create et drop sur cette table et lui attribuer un mot de passe – ou alors utiliser (voir ci-dessous) le nom de compte et le mot de passe de l’administrateur/créateur de la base de données.

Installation de DaDaBIK

Le logiciel s’installe simplement dans le répertoire du site Web où sera situé l’export, en l’occurrence MaBibliotheque à la racine du serveur. Recopier dans ce répertoire le contenu du répertoire program_files de la distribution.

Il faut ensuite éditer son fichier de configuration, qui se trouve dans un sous-répertoire. Ce fichier est MaBibliotheque\include\config.php, il faut y positionner quelques variables (trouver les lignes correspondantes) :

$dbms_type = 'mysql'; (si le SGBD est bien MySQL)
$host = 'nom de l’ordinateur hébergeant la base de données'; (par exemple : sql.free.fr)
$user = 'nom de l’utilisateur de la table'; (créé à l’étape précédente)
$pass = 'mot de passe de l’utilisateur';

$site_url = 'http://votreserveur.hebergeur.fr/MaBibliotheque/';
$site_path = '/MaBibliotheque/';

$language = 'french';

Lancer la configuration de DaDaBIK en vous rendant à l’adresse

http://votreserveur.hebergeur.fr/MaBibliotheque/install.php

ce qui créera les tables adéquates.

Configuration de l’interface

Afin de configurer l’interface, se rendre à l’adresse :

http://votreserveur.hebergeur.fr/MaBibliotheque/admin.php

Se rendre dans la section Configure the DaDaBIK interface of the table MaBibliotheque, et le laisser coché que Details : ceci supprime l’accès à la modification de la table via l’interface utilisateur de DaDaBIK.

Indiquer (par exemple) Ma Bibliothèque dans la case Table alias (ce qui donnera un titre plus lisible à l’écran).

Les sections suivantes permettent d’intervertir les colonnes dans la liste des réponses aux interrogations.

Cliquer ensuite sur le lien Interface configurator dans la section Configure the DaDaBIK Il permet de configurer les champs un par un. La case Label sert à indiquer ce qui sera affiché en tête de chaque colonne. Field et content type servent à indiquer au logiciel le contenu du champ ; dans notre cas, ils sont renseignés respectivement par text et alphanumeric, sauf dans deux cas : le champ URL, pour lequel on a indiqué unique_ID et html dans ces deux cases ; le champ langue, pour lequel on a indiqué select_single dans la première des deux. Option to include permet d’indiquer une liste de choix : pour la langue, nous avons renseigné cette case avec la liste ~Arabe~Araméen~…~Ukrainien~Yiddish~, ce qui affiche dans le formulaire de recherche un menu déroulant avec ces choix. Enfin, le champ Search operators permet de spécifier les opérateurs qui seront proposés dans le formulaire de recherche (plus petit/plus grand/égal/contient, etc.).

Sécurisation

Il est souhaitable de sécuriser l’accès à DaDaBIK en supprimant le fichier install.php et en déplaçant le fichier admin.php vers un répertoire protégé (quelques vagues instructions à cet effet se trouvent dans la documentation de DaDaBIK).

Import des données dans DaDaBIK

Transfert des notices détaillées

On exporte d’abord les notices au format HTML à partir de Book Collector, en se rendant dans le menu Fichier → Exporter vers → HTML…. Ceci produit sur le disque local un répertoire qui contiendra :

-         Des fichiers nommés indexnnn.html, qui sont les listes statiques de notices, dont nous n’avons pas besoin.

-         Deux répertoires, details et images, que l’on transférera dans le répertoire MaBibliotheque du serveur Web.

Modification de l’export

Ensuite, on exporte les notices au format texte, en se rendant dans le menu Fichier → Exporter vers → Texte…. Ceci produit un fichier texte, que l’on peut nommer par exemple MaBibliotheque.txt.

Afin que les liens vers les notices détaillées apparaissent dans la liste des réponses, il faut modifier cet export avant de l’importer dans la table de la base en ligne. L’export consiste en des lignes de la forme :

"243"   "Du progrès"    ""         "Taguieff, Pierre-André"          
"242"   "Le système technicien"            ""         "Ellul, Jacques"
"237"   "Le bluff technologique"           ""         "Ellul, Jacques"

dans lesquelles le premier nombre est le numéro de la notice dans la base, et le nom de la fiche détaillée. Il faudra remplacer partout ce numéro par :

"<a href=http://votreserveur.hebergeur.fr/MaBibliotheque/details/nnn.html>Détails</a>"

nnn est le numéro de la notice. Ainsi, les trois nombres ci-dessus devront être remplacés par :

"<a href=http://votreserveur.hebergeur.fr /MaBibliotheque/details/243.html>Détails</a>"
"<a href=http://votreserveur.hebergeur.fr /MaBibliotheque/details/242.html>Détails</a>"
"<a href=http://votreserveur.hebergeur.fr /MaBibliotheque/details/237.html>Détails</a>"    

Cette transformation peut se faire par exemple à l’aide d’un script en Perl (s’il est installé sur votre ordinateur) :

#!c:/bin/perl/bin/perl.exe -pi.bak
s!"([\d]+)"!"<a href=http://votreserveur.hebergeur.fr/MaBibliotheque/details/\1.html>Détails</a>"!;

Si l’on n’a pas installé Perl sur son ordinateur, on peut même utiliser Microsoft Word pour effectuer cette transformation, en suivant les étapes suivantes :

1.      Ouvrir avec Word le fichier MaBibliotheque.txt.

2.      Cliquer sur le menu Edition → Remplacer (ou Ctrl-H)

3.      Rajouter au début de toutes les lignes la forme xxx (par exemple ; il faut qu’elle n’apparaisse nulle part ailleurs dans le fichier – et notamment pas comme titre d’un ouvrage).
On peut le faire en saisissant ^p dans Rechercher la forme, et ^pxxx dans Remplacer par la forme, puis en cliquant Remplacer tout. Ceci a pour effet d’effectuer ce rajout sur toutes les lignes sauf la première – où on le rajoutera manuellement, et de rajouter une ligne à la fin qui ne contient que cette forme, ligne que l’on supprimera.

4.      Cocher maintenant Utiliser les caractères génériques.

5.      Saisir dans la case Rechercher la forme suivante :
xxx"([0-9]*)"

6.      Saisir dans la case Remplacer par la forme suivante :
"<a href=http://votreserveur.hebergeur.fr/MaBibliotheque/details/\1.html>Détails</a>"

7.      Cliquer Remplacer tout.

8.      Réenregister le fichier au format texte.

Le rajout du xxx est nécessaire pour éviter de modifier d’autres champs que le premier de chaque ligne, et qui ne contiendraient aussi que des chiffres – par exemple, un ouvrage dont le titre est un nombre (tel 813, de Maurice Leblanc). Ceci suppose donc que l’ID est le premier champ exporté dans chaque ligne.

Import dans le SGBD

Se rendre dans phpMyAdmin, se connecter à la base de données et sélectionner la table MaBibliotheque. Cliquer sur le lien tout en bas de la page, intitulé Insérer des données provenant d'un fichier texte dans la table.

Dans la page qui s’affiche :

-         sélectionner le fichier MaBibliotheque.txt (qui vient d’être modifié) pour la case Emplacement du fichier texte ;

-         iso-8859-1 comme jeu de caractères ;

-         cocher Remplacer ;

-         remplacer le point-virgule de la case Champs terminés par par \t (backslash suivi de la lettre « t »).

puis Exécuter.