Plugin Bouquinerie

Le plugin Bouquinerie permet de mettre en place rapidement et simplement un site proposant :
-  la présentation du commerce de type bouquinerie, ou librairie
-  la présentation de son catalogue de livre.
L’espace privé permet la gestions de multiples catalogues (recherches, doublons, modification des enregistrements), l’importation de catalogues en provenance de sites tiers, et l’exportation des catalogues au format xml.

Version actuelle : 0.1
Etat : en test


Présentation

Le plugin Bouquinerie comporte deux aspects :
-  L’interface privée permet au webmaster de gérer les catalogues de livres.
-  L’interface publique permet de présenter les catalogues et les livres.

Le plugin Bouquinerie propose deux nouveaux objets , les Livres et les Catalogues.

Ces deux nouveau objets s’administrent à partir d’une nouvelle page d’administration dans l’interface privée, et sont présentés dans l’interface publique à partir des boucles LIVRES et CATALOGUES.

Le couple Catalogue/Livre fonctionne à l’identique du couple Rubrique/Article. C’est à dire qu’un catalogue peut contenir un ou plusieurs livres et qu’il est possible de gérer plusieurs catalogues.

La mise en place du plugin Bouquinerie s’effectue en deux étapes :
-  L’installation et la création des catalogues
-  La mise en place des squelettes publiques.


Installation

- 1 : Installer le plugin

L’installation du plugin Bouquinerie s’effectue comme pour tous les autres plugins. Il suffit de récuperer le zip, de le décompresser dans son répertoire « plugins », puis d’aller l’activer dans la page de gestion des plugins.

-  Installer un plugin

Bouquinerie (0.1.0)

Après son activation, une icone « bouquinerie » apparait dans la barre d’icone de spip. Cette icone donne accés à la page d’administration de la bouquinerie.

- 2 : Installer la base de donnée

Une étape supplémentaire est néammoins necessaire avant de pouvoir utiliser le plugin Bouquinerie.
Ce plugin utilise 4 nouvelles tables dans la base de données. Il faut donc les créer.

Si ces tables sont inexistantes, la page d’administration vous proposera « d’installer la base de donnée ».

Cette action ajoutera 4 tables à votre base de donnée. Vous pouvez a tout moment remettre votre base de donnée dans l’état ou elle était en utilisant l’action « supprimer la bouquinerie » (menu gauche de la page d’administration).


La page d’administration principale

Toutes les pages d’administration du plugin Bouquinerie sont construites sur le même modéle. La colonne de gauche contient les liens classés par catégories (Actions, Informations, Navigations), tandis que le reste de la page concerne l’action actuellement en cours.

En l’état actuel des choses, la page d’administration doit proposer de créer au minimum un catalogue pour pouvoir ajouter des livres. Une fois ce premier catalogue créé (ou importé, cf. paragraphe sur l’importation), les options d’administration de livres seront visibles.

La page d’administration principale affiche la liste des livres et la liste des catalogues. Son menu donne accés à toutes les actions possibles concernant soit les livres, soit les catalogues.


Administration des catalogues

- 1 : Ajout d’un catalogue

Bouquinerie->Ajouter un catalogue

Cette page permet d’ajouter un catalogue. Remplissez le titre et le descriptif, puis validez.

- 2 : Importation d’un catalogue

Bouquinerie->Importer un catalogue

Dans le cas ou vous possedez un compte ainsi que plusieurs livres en vente sur un site commercial tiers, il est possible d’importer sous SPIP le fichier de sauvegarde que ce site commercial fournis.

Attention, plus le fichier que vous importez contient de données, et plus le temps de traitement sera long. (et poura éventuellement provoquer une erreur de type « timeout » ou « memory_limit exced »).

Cette action va lire tous les enregistrements contenu dans le fichier à importer et les transformer en « livres » utilisable sous spip.

En une seule opération, il est donc possible de transférer autant de livres que vous voulez dans votre base de donnée.

-  Format du fichier

Le fichier de sauvegarde que vous obtenez via les sites commerciaux sont très souvent et fort malheureusement dans un format fermé (.xls, fichier excel). Il faut donc convertir votre fichier en un format ouvert si vous voulez qu’il soit utilisable par d’autres outils.

Le format choisis par le plugin Bouquinerie est le format « ods » (open document spreadsheets). La conversion d’un fichier « .xls » en fichier « .ods » s’effectue très simplement grace à la suite bureautique openoffice.org.

-  Choix du format

Les fichiers sont bien sur organisés différement selon leur provenance. Pour le moment seul quelques format de fichier sont pris en compte. Choisissez içi le format d’origine de votre fichier.

Les formats actuellement pris en compte sont : priceminister.

Les formats à venir sont : abebooks, alapage.

-  Choix du catalogue

Choisissez un catalogue déjà existant, ou bien choisissez « Créer un catalogue », qui créra un nouveau catalogue afin d’y stocker vos livres.

Les livres importés serons stockés de le catalogue choisis.

-  Exclure les enregistrements en double

Dans toute base de donnée, la possibilité de se retrouver avec plusieurs enregistrements identiques est grande (surtout dans le cas ou le fichier à importer contient plusieurs miliers d’enregistrements).

Ces options vous permettent d’exclure de l’importation (les livres concernés ne serons donc pas enregistrés dans votre base de donnée) les enregistrements dont un critère (titre et/ou numéro isbn) est déjà présent dans la base de donnée ou dans le catalogue recevant l’importation.

-  Gestion des mots-clés

Lors d’une importation, le plugin est capable de récupérer les mots-clés utilisé par le site tiers, et de les importer dans votre base de donnée. Les livres importés retrouveront donc tous leurs mots-clés.

Si le ou les mots-clés présents dans un fichier d’importation n’existent pas encore dans votre base de donnée, alors ils y seront ajoutés.

- 3 : Exportation d’un catalogue

Bouquinerie->Exporter un catalogue

Permet de sauvegarder un ou plusieurs catalogues dans un fichier au format ods. Ce fichier sera placé dans le répertoire temporaire de SPIP.

/tmp/bouquinerie/sauv_date_heure.xml

Il ne vous reste plus qu’à le récupérer par ftp.

- 4 : Ajout d’un livre

Bouquinerie->Ajouter un livre

Cette page permet d’ajouter un livre dans le catalogue de votre choix. Choisissez le catalogue reçevant le livre, les mots-clés correspondant au livre, remplissez les autres champs (seul le titre et le catalogue sont obligatoires), puis validez.

- 5 : Recherche d’un llivre

Bouquinerie->Rechercher un livre

Cette page permet de rechercher un ou plusieurs livres répondants à certains critères (titre, auteur, illustrateur, edition, prix de vente, isbn).
Le résultat de la recherche sera affiché en-dessous du formulaire. Il est possible d’utiliser les caractères génériques « _ » et « % ».

-  le Joker : le caractère « _ » remplace n’importe quelle lettre. Placé dans un mot (par exemple : « al_es ») , la recherche renverra les titres contenant aussi bien le mot « alpes » que le mot « Floralies ».

-  le groupe de lettre : le caractàres « % » remplace n’importe quel groupe de lettre. Placé dans un mot (par exemple : « sp%n »), la recherche renverra les titres contenant aussi bien le mot « spawn » que le mot « sphinx ».

- 6 : Recherche de doublons

Bouquinerie->Rechercher les doublons

Cette page permet de recherche les livres ayant un critère identique. Ce critère peut être n’importe quel champs décrivant un livre (titre, isbn, numéro d’édition, commentaire, etc ...). Le résultat sera présenté dans un liste classé par groupe de doublons.

-  critères de base

Plusieurs type de critères sont proposés. Recherche de doublons par titre, par ISBN, par auteur, et par edition.

-  Modification de l’url

Il est aussi possible d’effectuer une recherche de doublon en modifiant l’url de l’action.

Pour une recherche par titre, cette url ressemble à :

http://www.mabouquinerie.fr/ecrire/?exec=rechercher_doublons&par=titre

Remplacez simplement l’argument « par » par le nom du champ que vous voulez intérroger.

Par exemple :

http://www.mabouquinerie.fr/ecrire/?exec=rechercher_doublons&par=date_ajout

Cette commande retournera la liste de tous les livres ayant une date d’ajout dans un catalogue identique, classé par ordre alphabétique.

- 7 : Configurer le plugin

Bouquinerie->Configuration

La page de configuration du plugin permet de saisir les différentes mentions légales de la Bouquinerie (nom, adresse, siège social, conditions générales de vente, horaires d’ouverture, nom du gérant, adresse e-mail du gérant, numéro au registre du commerce).

- 8 : Supprimer la bouquinerie

Bouquinerie->Supprimer la bouquinerie

Cette page permet de supprimer les modifications effectué sur votre base de donnée par le plugin Bouquinerie. Elle n’est utile qu’en cas de désinstallation du plugin.
Utilisez cette option avant de désactiver le plugin dans l’interface de gestion des plugins.
Attention, cette action supprimera définitivement de votre base de donnée toutes les tables de la bouquinerie.

N’effectuez cela que si vous certains de ce que vous faites.


Les pages publiques

Un fichier squelette d’exemple est fournis avec le squelette.
Il s’appelle bouq_exemple.html.

- 1 : La boucle LIVRES

Une boucle de livres se code en plaçant entre parenthèses LIVRES (avec un « s ») :

<BOUCLEn(LIVRES){critères...}>

Les éléments contenus dans une telle boucle sont des livres.

Les critères de sélection

On utilisera l’un ou autre des critères suivants pour indiquer comment on sélectionne les éléments.

-  {tout} Les livres sont selectionnés dans l’intégralité du site (dans tous les catalogues). [En réalité, le critère « tout » n’est pas traité de manière informatique : c’est un aide-mémoire pour le webmestre ; on obtient le même résultat en n’indiquant aucun des critères suivants.]

-   {id_livre} Selectionne le livre dont l’identifiant est id_livre. Comme l’identifiant de chaque livre est unique, ce critère ne retourne qu’une ou zéro réponse.

-   {id_catalogue} Selectionne les livres contenu dans le catalogue dont l’identifiant est id_catalogue

-   {id_mot} Selectionne les livres correspondant à cet identifiant de mot-clé.

Le statut du livre

-   {statut=a_vendre|vendu|reserve} Selectionne les livres en fonction de leur statut.

  • {statut=a_vendre} Selectionne les livres à vendre
  • {statut=vendu} Selectionne les livres vendus
  • {statut=reserve} Selectione les livres réservés

Les critères d’affichages

Une fois fixé l’un des critères ci-dessus, on pourra ajouter les critères suivants pour restreindre le nombre d’éléments affichés.

Les critères communs à toutes les boucles s’appliquent.

Les balises de cette boucle

-  Les balises tirées de la base de données

-  #ID_LIVRE
-  #TITRE
-  #AUTEUR
-  #ILLUSTRATEUR
-  #EDITION
-  #PRIX_VENTE
-  #ISBN
-  #ID_CATALOGUE
-  #STATUT
-  #ETAT_LIVRE
-  #ETAT_JAQUETTE
-  #FORMAT
-  #ETAT_RELIURE
-  #TYPE_LIVRE
-  #LIEU_EDITION
-  #ANNEE_EDITION
-  #NUM_EDITION
-  #INSCRIPTION
-  #REMARQUE
-  #COMMENTAIRE
-  #PRIX_ACHAT
-  #LIEU
-  #NUM_FACTURE

- 2 : La boucle CATALOGUES

Une boucle de livres se code en plaçant entre parenthèses CATALOGUES (avec un « s ») :

<BOUCLEn(CATALOGUES){critères...}>

Les éléments contenus dans une telle boucle sont des catalogues.

Les critères de sélection

On utilisera l’un ou autre des critères suivants pour indiquer comment on sélectionne les éléments.

-  {tout} Les catalogues sont selectionnés dans l’intégralité du site (dans tous les catalogues). [En réalité, le critère « tout » n’est pas traité de manière informatique : c’est un aide-mémoire pour le webmestre ; on obtient le même résultat en n’indiquant aucun des critères suivants.]

-   {id_catalogue} Selectionne le catalogue dont l’identifiant est id_catalogue. Comme l’identifiant de chaque catalogue est unique, ce critère ne retourne qu’une ou zéro réponse.

Les critères d’affichages

Une fois fixé l’un des critères ci-dessus, on pourra ajouter les critères suivants pour restreindre le nombre d’éléments affichés.

Les critères communs à toutes les boucles s’appliquent.

Les balises de cette boucle

-  Les balises tirées de la base de données

-  #TITRE : le titre du catalogue
-  #DESCRIPTIF : le dsecriptif du catalogue

- 3 : Les mentions légales

-  #CONFIG{bouq/AdresseBouquinerie} : Adresse de la bouquinerie
-  #CONFIG{bouq/AdresseSiegeSocial} : Adresse du siege social
-  #CONFIG{bouq/CGV} : Condition générales de ventes
-  #CONFIG{bouq/NomGerant} : Nom du gérant
-  #CONFIG{bouq/MailGerant} : Adresse email du gérant
-  #CONFIG{bouq/NRC} : Numéro au registre du commerce


Projet

Le plugin bouquinerie est en phase de test, il se peut que vous y découvriez des bugs.

-  Téléchargement
-  Rapport de bug
-  Site de démonstration

Discussion

14 discussions

  • 2

    bonjour

    pensez vous publier une version de ce plugin compatible avec SPIP 3.0.x ? à l’heure de la montée en puissance des livres numériques, cette compatibilité serait bienvenue

    merci d’avance
    cordialement

    Répondre à ce message

  • 1

    Bonjour,

    On dirait bien que le plugin n’est plus maintenu par son auteur original, du coup je pense me charger de son portage pour SPIP 3.

    Par contre pour tout ce qui concerne l’importation de catalogues en provenance de sites commerciaux, je vais avoir besoin de contributions.
    L’auteur d’origine avait ciblé les fichiers excels générés par priceminister, abebooks et alapage.
    Or ça c’était il y a plus de 5 ans (une eternité sur internet !), est-ce que ces sites proposent maintenant d’exporter des catalogue dans un format ouvert et inter-echangeble (xml, yaml ou autre ) ?
    De plus, je vais avoir besoin de fichiers types pour voir comment ils sont faits, si des gens sont interessés par ce portage, ce serait sympa de m’en faire parvenir.

    Répondre à ce message

  • 4

    Bonjour, ce petit message pour signaler que le plugin ne fonctionne pas avec la version officielle de SPIP 2.0

    Il réclame une version de CFG 1.3.7 qui est introuvable sur le web.

    Merci.

    Doc Mac

    Répondre à ce message

  • Bonjour à tous,
    Intéressant ce plugin, comme beaucoup de modules de commerce commencés sous SPIP. Mais qu’en est-il de la phase paiement ? Est-ce que par exemple le plugin parle avec Transaction ou alors, comment gérer les paiements ? Y a-t-il un suivi de ce projet ? Le site de démo ne mène nulle part. Merci à vous !

    Répondre à ce message

  • 1

    Bonsoir, j’ai installé le plugin mais dans l’interface administration l’onglet livre n’apparait pas alors que j’ai créé 2 catalogue. Comment corrige ce bug. Ce plugin est-il toujours mis à jour ?

    Merci pour votre aide,

    TS

    Répondre à ce message

  • 1

    Le menu des livres n’apparaît que lorsqu’il y a déjà un enregistrement.

    J’ai dû injecter des données bidons avec phpmyadmin pour voir apparaître le menu.

    Cf. .../exec/admin_bouquinerie.php, ligne 63 : $livres = bouq_verifier_livres(); et ligne 82 :

    		if ($livres) {
    			echo '<br />';
    
    			cadre_gauche_bouq('Livres',array(
    				'<a href="'.generer_url_ecrire("livres_edit","new=oui").'">'._T('bouq:ajouter_livre').'</a>',
    				'<a href="'.generer_url_ecrire("rechercher_livres").'">'._T('bouq:rechercher_livre').'</a>',
    				'<a href="'.generer_url_ecrire("rechercher_doublons").'">'._T('bouq:rechercher_doublons').'</a>'
    			));
    		}

    Or, inc/bouq.php, ligne 33 :

    function bouq_verifier_livres() {
    	$row = sql_fetsel("*", "spip_livres", "");
    	if ($row) return true;
    	return false;
    }
    • Ceci semble réparé.

      La page bouquinerie propose maintenant l’installation des tables.

      Aurélie

    Répondre à ce message

  • Bonjour,
    J’ai besoin, de façon urgente, de faire développer un plugin similaire, mais pour un catalogue de films. Très important : le contenu des tables rajoutées doit apparaître dans les résultats de recherche.
    Y aurait-il un développeur potentiel pour ce type de chose ?

    Répondre à ce message

  • pour corriger le fait qu’on ne puisse pas rajouter de bouquin dans une gamme vide, il faut éditer le fichier exec/catalogues.php

    APRES
    
    cadre_gauche_bouq(_T('bouq:actions'),array(
    	'<a href="'.generer_url_ecrire("catalogues_edit",'id_catalogue='.$id_catalogue.'&url_retour='.generer_url_ecrire("catalogues","id_catalogue=$id_catalogue")).'">'._T('bouq:editer_catalogue').'</a>',
    	'<a href="'.generer_url_ecrire("supprimer_catalogue",'id_catalogue='.$id_catalogue).'">'._T('bouq:supprimer_catalogue').'</a>'
    ));
    
    
    AJOUTER
    
    if (_request('id_catalogue')) {
    	echo '<br />';
    	cadre_gauche_bouq(_T('bouq:livre'),array(
    		'<a href="'.generer_url_ecrire("livres_edit","new=oui").'">'._T('bouq:ajouter_livre').'</a>'
    	));
    }

    Répondre à ce message

  • y’a-t-il un suivi de ce plugin ?

    pour le faire afficher sur spip 2.0, il faut remplacer la ligne 27 du fichier admin_bouquinerie.php par

    « if (function_exists(’charger_generer_url’)) charger_generer_url() ; »

    Répondre à ce message

  • Je n’arrivais pas à exporter un .ods.

    Le problème provient des fonctions uniqid() et shell_exec() dans /action/exporter_catalogues.php

    1. Warning : uniqid() expects at least 1 parameter, 0 given in /.../action/exporter_catalogues.php on line 67

    Je lis ici http://fr.php.net/manual/fr/functio... que le « paramètre prefix est devenu optionnel » en php 5.0.0.

    M’inspirant d’un exemple donné sur cette même page, j’ai mis à la ligne 67 de action/exporter_catalogues.php :

    $uid = uniqid(rand());

    2. Warning : shell_exec() [function.shell-exec] : Cannot execute using backquotes in Safe Mode in /.../action/exporter_catalogues.php on line 91

    Là c’est un problème de Safe Mode. Étant sur un hébergement mutualisé, je n’ai pas accès aux options du serveur.

    Ne faudrait-il pas plutôt utiliser l’extension zip de php ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom