Carnet Wiki

Evolution du plugin Bouquinerie

Version 7 — Avril 2014 tcharlss

Cet article est destiné aux personnes interessées par l’évolution du plugin Bouquinerie pour SPIP 3.
N’hésitez pas à ajouter vos remarques et contributions dans le dernier paragraphe, l’article est librement éditable.
Vous pouvez également suivre le fil de discussion sur la liste spip.users : http://archives.rezo.net/archives/spip.mbox/RNCMG3KDBWETD4CEA4N43WYXAP62SX5T/
Que vous soyez utilisateurs ou non, contribuez à la discussion !

La version courante (.1.) n’est pas compatible SPIP 3, et le plugin a peu évolué depuis son dépôt sur la zone.
Je souhaite me charger de sa mise à jour.
Plutôt que de faire un « simple » portage pour SPIP 3, profitons-en pour faire une remise à plat : à qui se destine le plugin ? De quelles fonctionnalités a-t-on besoin ?


Le plugin actuel (version .1.0 pour SPIP 2)

Etat des lieux / récapitulatif succint :

  • Le plugin a été conçu à destinations des librairies/bouquineries, pour leur permettre de présenter des catalogues de livres (neufs et occasions) à l’achat et à la vente.
  • Dans l’espace privé, il permet la gestion de « livres » qu’on regroupe sous formes de « catalogues », les 2 étant de nouveaux objets éditoriaux.
  • Un formulaire permet d’importer des catalogues provenant du site commercial « Priceminister ».
  • Des squelettes sont fournis pour le site publique.

Problèmes soulevés :

  • Le plugin n’est pas vraiment adpaté à la gestion de collections de livres dans un cadre non commercial : maisons d’édition ou particuliers par exemple.
    Concrètement, la table « spip_livres » comporte de nombreux champs pertinents uniquement dans le cadre d’un commerce : « etat_livre », « etat_jaquette », « prix_achat », « commentaire », « num_facture » etc.
  • Le regroupement des livres sous formes de « catalogues » est imposé.
  • Le nom, l’adresse de la boutique, les mentions légales etc. sont enregistrés dans les options de configuration du plugin.
  • Gestion technique dans l’espace privé + squelettes pour le site publique = mélange des genres !

Proposition d’évolution (version 1.x pour SPIP 3)

Je propose de ne garder dans Bouquinerie que l’aspect « gestion de collections de livres », et de basculer les fonctions typées commerce dans un plugin tiers, qui servirait d’extension au premier.
Ainsi le plugin serait plus générique et utilisable par un plus large public : les librairies, mais également les particuliers, les maisons d’édition, et pourquoi pas les bibliothèques.
Essentiellement, le plugin permettra de créer des « livres », que l’on pourra classer en séries, collections, catalogues etc. Il permettra l’importation de livres par le biais de recherches dans des bases de données en ligne (google books, open library etc.).
Bref il s’agira d’une rupture de compatibilité assumée avec la version pour SPIP 2 : du moment que c’est les changements sont bien documentés ça me semble jouable.

Un prototype sera proposé au téléchargement sous peu.

Livres : champs proposés

Je propose de faire le ménage dans la table spip_livres.
Y a-t-il des champs à ajouter ?

« Livres  »
||Champs du d’un livre ||
| Nom | explication |
| #TITRE | Ttire du livre |
| #ISBN | Numéro ISBN à 10 ou 13 chiffres |
|
< code>#IDENTIFIANT</code > | Identifiant unique . On pourrait si besoin séparer en 2 champs distincts : #ISBN_10 et ISBN_13 |
| #IDENTIFIANT | Identifiant unique optionnel.
Typiquement, il est donné par les base de données en ligne (google books et cie). Permet d’éviter à coup sûr les doublons lors de l’importation de nouveaux livres. Typiquement , il est donné dans les base de données en ligne ( google books et cie ) |
| #DATE_PARUTION | Date de parution |
| #EDITEUR | Nom de l’éditeur |
| #LANG | Langue du livre, code ISO-639-1 à 2 lettres (idem code langue SPIP) |
| #VOLUME (ou bien #TOME ?) | Numéro du livre au sein d’une série |
| #PAGES | Nombre de pages |
| #HAUTEUR | Hauteur en cm |
| #LARGEUR | Largeur en cm |
| #DESCRIPTIF | Descriptif du livre (par ex. 4e de couverture) |
| #TEXTE | Extrait du texte |
|
< code>#ID_RUBRIQUE</code > (non définitif ) | Eventuellement , identifiant de la rubrique pour permettre d’y «  ranger  » les livres . A voir. |

Livres : gestion des statuts

Pas encore défini. On va sans doute revenir aux statuts de base « en cours de rédaction », « publié » et « à la poubelle ». Est-ce que d’autre satuts sont souhaitables ?

Livres : gestion des auteurs

Pour la gestion des auteurs des livres, une possibilité est d’utiliser l’objet « auteur » de SPIP, au lieu d’écrire le nom en dur dans un champ #AUTEURS.
Ca permettra une recherche et un classement des livres par auteur beaucoup plus robuste.
Techniquement, cela suppose d’utiliser le plugin rôles de M.Marcillaud en dépendance afin de pouvoir typer les liens (cf. la vidéo pour comprendre vite fait de quoi il retourne).
On pourra donc ajouter des auteurs sur les livres avec différents rôles : traducteur, illustrateur etc.

Gestion des séries, collections, catalogues etc.

Voilà un des points les plus importants du plugin : on doit avoir la possibilité de classer les livres de façon simple en définissant des groupes : des « séries », des « collections » etc.
Cela sera possible de plusieurs façons :

  • Utilisation de « catalogues » : un catalogue est un objet éditorial conteneur qui permet de définir des groupes de livre. C’est le nom employé dans dans la v0.x, peut-être que le terme "groupe_livres" sera plus approprié. Un groupe aura les champs : #TYPE, #TITRE, #DESCRIPTIF.
    Ex : après avoir crée le livre « Les naufragés du A », on l’associe au catalogue de type : « série », titre : « Philémon », descriptif : « Les albums de Philémon ».
  • Ajout de livres à des objets éditoriaux par le biais de la table de liens spip_livres_liens. Il sera donc possible de « ranger » livres en les liants à des rubriques par exemple.
  • Utilisation des mot-clés

Livres : importation/exporation

On peut importer un ou plusieurs livres à la fois en faisant une recherche en ligne (sur google books, open library etc.) directement dans l’espace privé.
Pour l’export, c’est à voir : existe-t-il un format standard ?

Importation de livres : une recherche et les résultats
Importation de livres, étape 1 : on vient d’effectuer une recherche et les livres correspondants sont affichés en bas.
Importation de livres : 2 livres sélectionnés parmis les résultats
Importation de livres, étape 2 : La sélection a été validée, avant l’importation on affiche les options.
Fiche d’un livre importé


Vos remarques & contributions ici