Carnet Wiki

Evolution du plugin Bouquinerie

Version 8 — 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 (0.1.0) 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 ?

Nom explication
#TITRE Tire Ttire du livre
#ISBN Numéro ISBN à 10 ou 13 chiffres. 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.
#DATE_PARUTION Date de parution
#EDITEUR (à voir) Nom de l’éditeur. Pas sûr de garder ce champ, cf. section plus loin

|

#DATE_PARUTION</code >  |  Date  de  parution  | 
|  < code>#EDITEUR</code >  |  Nom  de  l'éditeur   |
| <code>#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 |
| #ID_RUBRIQUE (non définitif) | Eventuellement, identifiant de la rubrique pour permettre d’y « ranger » les livres. A voir. |

Gestion Livres  : gestion des statuts

Pas encore défini. Pas encore défini , quel Est-ce que d’autre satuts sont souhaitables ? Peut-être « réédité », « épuisé », ce genre de chose ?
A défaut , on On va sans doute revenir aux statuts de base « en cours de rédaction », « publié » et « à la poubelle ».

Gestion 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 éditeurs

Comme pour les auteurs, l’idéal serait d’utiliser des objets éditoriaux pour les éditeurs, pour les mêmes raisons (tri, recherche et gestion dans l’espace privé).
Doit-on rajouter cet objet éditorial, ou se reposer sur un plugin tiers ? Le plugin « contact et organisation » pourrait faire l’affaire, bien que je déplore un léger côté usine à gaz.

Gestion des groupes  : séries, collections, catalogues etc.

Assurément Voilà un des points les plus importantsdu 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, par le biais de la table < code>spip_livres_liens</code >. . C’est le nom employé dans dans la v0.x, peut-être que le terme «  " groupe_livres » " sera plus approprié, à voir . 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 ».
  • Par extension , on pourra ajouter des Ajout de livres à tout type d’objet éditorial 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