Bouquinerie V2 : guide de l’utilisateur

Configuration

Quels contenus
Selon la maquette adoptée pour votre site, vous pouvez décider que certains éléments des livres ou auteurs de livre ne sont pas utilisés.

Vous trouverez dans la page de configuration du plugin la possibilité de sélectionner ou non certains des éléments proposés.

Multilinguisme
Il est possible de gérer la même fiche livre en plusieurs langues par le biais du mécanisme multilingue de SPIP : Configuration -> Multilinguisme.

Gestion des auteurs

Une fois votre fiche livre créée, vous pouvez préciser le où les auteurs du livre ainsi que le rôle de chacun d’eux.

  • écrivain (par défaut)
  • traducteur
  • illustrateur
  • photographe
  • préfacier
  • postfacier

Un point en particulier pour les traducteurs
Si vous ajoutez un traducteur, vous pouvez préciser dans le champ « Traduit de… » la langue d’origine du livre.

Gestion des éditeurs

Trois options possibles :

  1. Votre site est celui d’un éditeur. Rien à faire donc ;
  2. Vous voulez afficher le nom du ou des éditeurs. Dans la page de configuration, vous activez le champ « Éditeur(s) » ;
  3. Votre catalogue de livre comprend des références à plusieurs éditeurs et pour chacun d’eux vous voulez une description et la possibilité de créer une page avec la liste des livres. Dans ce cas, utilisez les mots-clés [1].

Date de parution et nouvelles éditions

Une fois votre fiche livre créée, vous pouvez préciser la date de parution et éventuellement la date d’une nouvelle édition.
Si vous avez activé le champ « Mention nouvelle édition » vous pouvez également donner des précisions quand à cette nouvelle édition tel que « 2e édition revue et augmentée » par exemple.

Classer vos livres

La notion de catalogue est prévue via le mécanisme de rubrique de SPIP.
Il vous suffit donc de créer une arborescence de thèmes pour ensuite ranger vos fiches livre.

  • Catalogue
    • littérature française
    • littérature étrangère
    • histoire
    • Essais
    • Beaux livres

…par exemple.

Si vous avez un catalogue avec de (très) nombreux thèmes, le plugin Rubriqueur peut vous faire gagner du temps.

Collection et volume (N° de tome)

Collection peut également servir pour définir un titre de série.
Volume peut également servir pour le numéro de tome d’une série.

Par défaut, les fiches Livre et Auteur de livres proposent respectivement la possibilité de charger la couverture du livre et la photo de l’auteur.

Pour la 4e de couverture, vous pouvez activer la fonction ’logo de survol’ fourni nativement pas SPIP.
Pour cela, dans l’espace privé, aller dans Configuration -> Contenu du site, et dans le Bloc « Les logos », activer l’option ’Utiliser les logos de survol’.

Dans la cas d’une utilisation plus avancée, vous pouvez vous servir du plugin Rôles de documents

Si vous avez besoin d’ajouter le copyright pour les photos d’auteurs, je vous recommande d’utiliser le plugin Titre de logo

Caractéristiques

ISBN : le plugin fourni une typo permettant d’afficher le code barre d’une fiche livre.

Rien de particulier sur les champs Nombre de pages, Type de reliure, Largeur, Hauteur, Poids.

E-commerce

Si vous activez le champ Prix, vous pouvez alors aussi utiliser les fiches livre dans la cadre d’un site de e-commerce.

Vous aurez alors besoin des plugins suivants :

Pour l’intégration de ces derniers, vous pouvez suivre l’excellent Tuto-Commerce

Notes

[1Activez les mots-clés dans Configuration > Contenu du site > Utiliser les mots-clés, puis créez un Groupe intitulé « Editeurs » et associez-le aux Livres

Discussion

7 discussions

  • 14

    Bonjour,

    Je viens d’installer Bouquinerie v2 (1.3.7 ) sans message d’erreur. J’ai accès à la configuration du plugin tout semble OK.

    Mais quand je suis sur l’Accueil du BO et dans les pages « Edition/Auteurs de livre » et « Edition/Livres » j’ai l’erreur de squelette ci-dessous :

    Message :
    Erreur SQL 1146
    Table ’mabase.spip_livres’ doesn’t exist
    SELECT livres.id_livre, 0 as points, ’’, livres.titre, livres.statut, livres.id_rubrique, livres.volume, livres.titre AS titre_rang, livres.soustitre, livres.date_parution FROM spip_livres AS livres WHERE (livres.statut = ’prepa’) GROUP BY livres.id_livre ORDER BY 0+livres.titre, livres.titre

    Squelette :
    /home/monsite/dev/ecrire/public/composer.php

    boucle :
    calculer_select()
    sql_select() ;

    Ligne :
    1005

    En allant sur la base je n’ai effectivement pas de tables ’spip_livres’ ni ’spip_livres_auteurs’
    J’ai désinstaller/réinstaller le plugin : pareil.

    J’avais auparavant mis à jour SPIP de 3.1.0 à 3.2.4 sans problème.
    Une idée de la raison pour laquelle les tables ne se créent pas à l’installation du plugin ?

    Merci d’avance.
    Gil

    • Je poursuis les investigations. je viens d’installer un SPIP neuf 2.3.5
      J’ai installé le plugin. J’ai bien toutes les tables mais pas de bouton pour ajouter un livre...
      Bizarre non ?

    • Bonjour Gil,

      je viens de tester l’ajout de Bouquinerie sur une SPIP 3.2.4 tout frais et tout se passe bien.
      Du coup non, je n’ai pas d’idée sur le problème que tu me décrits.

      Si tu as plus d’infos à me communiquer, n’hésites pas…

      Cheers

    • Je poursuis mes investigation et j’ai installé un SPIP neuf sur un autre serveur. J’ai installé le plugin et j’ai toute les tables.
      J’ai pu créer un auteur mais pas de livre car je n’ai pas de bouton !
      Bizarre non ?
      cf capture d’écran.

    • J’ai bien toutes les tables mais pas de bouton pour ajouter un livre...

      Ça c’est un classique :) Il te faut créer au moins une rubrique pour voir le bouton « Créer un livre » apparaître

    • Merci beaucoup de ta réponse et de ta réactivité !

      Tout est OK maintenant sur la 2.3.4 neuve.

      Pour le premier problème je vais regarder de plus près pourquoi les tables ne se créent pas...

      Bonne journée

    • Je suis finalement allé dans « Maintenance technique » -> « Tenter une réparation » et cela a finalement créé les tables !!! pourquoi comment ???
      Il n’y avait pas eu de message particulier mais les tables sont apparus...

    • spipfactory

      idem que gil ...........

      Je suis finalement allé dans « Maintenance technique » -> « Tenter une réparation » et cela a finalement créé les tables !!! pourquoi comment ???

    • Hello,

      as-tu plus d’infos à me donner ?

    • spipfactory

      Non pas vraiment ,c’est sur un spip 3.2.4
      que même si je desinstalle et reinstall le plugin ça le fait pas
      qu’il ma fallu passer sur réparation des tables pour que le plugun fonctionne
      mais je vais tester un peu plus en profondeur
      si je trouve un truc , je ne manquerais pas de communiquer dessus.

      soit pas pressé , je suis surbooké ;)

    • conil26

      Bonjour,

      Je suis sur une mutualisation.
      Le plugin bouquinerie et ses dépendances ne sont pas dans le dossier plugins/auto de la mutu mais dan le dossier plugins de mon site, selon les préconisations des mutu de SPIP, puisque je suis le seul mutualisé à m’en servir.

      Voici le message de la partie privée

      Avec le message suivant « en ligne »
      Parse error : syntax error, unexpected ’,’ in /home/clients/.../web/ecrire/public/composer.php(92) : eval()’d code on line 218

      Hébergeur : Infomaniak.com
      PhP 7.n

      SPIP 3.2.4 SVN [24210]

      Bouquinerie 1.3.7 - test
      Chosen (fork de koenpunt) 1.8.1 - stable
      Rôles 2.0.0 - test
      Vérifier la compatibilité de vos plugins 1.1.1 - stable

      Voilà

    • Pas dans le bon fil de discussion mais pas grave.

      Je viens de (re) tester sur 3 sites différents et je n’arrive pas à reproduire le problème que tu signales. (même config sauf pour SPIP en SVN(24371)).

      En cherchant dans les forums, j’ai trouvé ça : http://archives.rezo.net/archives/spip-dev.mbox/YM4OKAQ7D6JF3MCKEVM67NSXWGTGEQSD/ . Une piste peut être ?

    • conil26

      Je poursuis mes essais.

      Il y a apparemment un pb avec le squelette ESCAL.

      Les livres apparaissent bien mais dans un SPIP sans squelette :
      https://www.agha.fr/neo/?Le-collier-rouge&var_mode=calcul

      alors que le site est sous ESCAL
      https://www.agha.fr/neo/

      Quel paramètre n’ai-je pas activé ?
      Merci

    • « Il y a apparemment un pb avec le squelette ESCAL. »

      Ou avec le plugin Bouquinerie ;-)

    • Vider les caches et voir ce que ça donne.
      Sinon activer le erreurs dans mes_options.php pour voir ce que ça dit.

    Répondre à ce message

  • 2

    Bonjour, j’utilise ce plugin pour la gestion de l’activité d’un cercle de lecture, et il est parfait pour cet usage. Bravo pour cet excellent outil ...
    Je rencontre toutefois un problème avec les auteurs : en effet, il est apparemment impossible de supprimer un auteur enregistré. Lorsque je choisis « mettre à la poubelle » ou « en cours de rédaction » et que je valide, il revient immédiatement sur « publié en ligne » ... Idem si j’essaie avec le petit carré vert qui ne veut pas passer à « à la poubelle ».
    Est-ce normal, ai-je manqué un élément de paramétrage ou est-ce un petit bug ?

    Si quelqu’un a une solution cela m’arrangerait bien, ce serait plus simple que de passer en direct via la bdd ...

    Merci. Marc

    Répondre à ce message

  • 2

    Bonjour, ce plugin permet-il de vendre des livres numériques, c’est à dire des produits virtuels ?
    Merci !
    (je cherche à faire évoluer mon site de vente de livres numériques. Je suis actuellement sous Thélia 1.5, et le passage à Thélia 2 me semble complexe. Alors je cherche une solution alternative, et je connais bien Spip)

    • Bonjour,

      J’ai déjà fait des sites de commerce, mais pas encore avec ce plugin. Je dirais à priori oui, à l’aide des plugins cités dans le paragraphe E-commerce de cette même page.

      Toutefois, Bouquinerie n’intègre pas la notion de prix HT et de taxe. Peut être utiliser aussi le plugin Prix Objet qui s’occupe justement de tout ça.

      L’alternative à Bouquinerie (je pense) serait le plugin Produits. Je sais qu’il intègre la notion de « Produit dématérialisé (pas de livraison physique) ».

      Je suppose qu’il te faudra aussi utiliser Accès restreint pour protéger tes fichiers ePub ou PDF.

    • Un grand merci pour votre réponse rapide ! Je continue mes recherches !

    Répondre à ce message

  • 4

    Bonjour,

    le moteur de recherche propre à SPIP ne trouve pas les titres ou les auteurs. Concernant les titres, j’ai créé facilement une boucle, dont voici le code :

    	<B_livres>
    		<div class="menu menu_articles">
    			#ANCRE_PAGINATION
    			<h2>Titres (#GRAND_TOTAL)</h2>
    			<ul class="spip">
    			<BOUCLE_livres(LIVRES) {recherche} {!par points} {pagination}>
    				<li><a href="#URL_LIVRE">#TITRE</a></li>
    			</BOUCLE_livres>
    			</ul>
    			[<p class="pagination">(#PAGINATION)</p>]
    		</div>
    		</B_livres>

    Cependant, pour les auteurs, je n’y arrive pas, le fonctionnement étant différent. J’apprécierais beaucoup s’il y avait une solution pour permettre également aux utilisateurs du site de retrouver les auteurs dans une recherche simple.

    Merci beaucoup !

    • Hop,

      Pour une recherche sur les auteurs, quelque soit leur rôle, tu peux faire :

      <BOUCLE_auteurs_livres_rechercher(LIVRES_AUTEURS){recherche}{!par points}>
      	…

      Pour une recherche juste sur les écrivains

      <BOUCLE_auteurs_livres_rechercher(LIVRES_AUTEURS){recherche}{!par points}{role=ecrivain}>
      	…

      Pour une recherche multi rôle auteur

      <BOUCLE_auteurs_livres_rechercher(LIVRES_AUTEURS){recherche}{!par points}{role==ecrivain|traducteur|illustrateur}>
      	…
    • Encore une fois merci !
      En complétant la boucle ainsi :

      	<BOUCLE_auteurs_livres_rechercher(LIVRES_AUTEURS){recherche} {!par points} {pagination}>
      	<li><a href="#URL_LIVRES_AUTEUR">#NOM, #PRENOM</a></li>
      	</BOUCLE_auteurs_livres_rechercher>

      le tout fonctionne très bien !

    • Bonjour, encore moi !

      dans la configuration du plugin Bouquinerie, j’ai activé Sommaire , où je place la description du livre. Il s’y trouve donc beaucoup de texte... qui échappe au moteur de recherche.
      Je n’ai pas trouvé de balise du genre URL_LIVRES_SOMMAIRE , ou enfin... je ne réussis pas à intégrer une recherche sur cette partie de la table.

      Est-ce qu’il est possible d’intégrer le contenu du Sommaire dans le moteur de recherche ? Serait-il plus simple d’utiliser « Présentation » plutôt que « Sommaire » ? Je suis ouvert à tout !

      Bref, sur les liens entre le moteur de recherche et Bouquinerie, il me semble que ce serait ma dernière question ! La réponse serait appréciée, comme auparavant ! Merci beaucoup !

    • Hello,

      ah…le moteur de recherche. Vaste question !

      En l’occurence, pour le plugin Bouquinerie, j’ai privilégié l’indexation sur le titre, soustitre et ISBN (ce dernier étant bien utile pour les libraires). Ajouter un nouveau champ, c’est ajouter (un peu ?) de « bruit » dans les résultats de recherche.

      Dans ton cas, il existe une solution bien documentée : le pipeline.

      Après lecture de ces deux pages, tu devrais comprendre le code ci-dessous et comment l’insérer dans ton site.

      $GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .= "|recherche_sommaire";
       
      function recherche_sommaire($flux) {
          return $flux['livre']['sommaire'] = 5;
      }

      Cheers

    Répondre à ce message

  • 2

    Bonjour,
    à quel endroit se trouve « la page de configuration du plugin » ?
    Paur ma part, aucun outil de paramétrage n’apparaît sur l’élément Bouquinerie dans la liste de gestion des plugins.

    (j’utilise SPIP 3.2.1 et Bouquinerie 1.2.5)

    Merci !

    • Hello,

      suite à une récente modif, l’accès au paramétrage du plugin avait disparu. C’est corrigé avec Bouquinerie 1.2.6.

      Merci du signalement :)

    • Bonjour,
      tout fonctionne à merveille avec cette mise à jour. Bravo pour cet excellent plugin.

      Une toute petite chose cependant, le prix du livre, qui se détaille en Euro. Comme je suis au Québec, nous utilisons le dollar canadien. Je vais adapter le squelette.

      Merci pour tout !

    Répondre à ce message

  • Alors, en attendant de trouver une solution valide intégrée au plugin (du moins à sa surcharge), j’obtiens le résultat attendu en plaçant une redirection sur livres_auteur.html (le précédent fichier inclure/auteur_signature.html sur lequel je travaillais retrouvant son état original).

    Pour pouvoir servir à d’autres (ou si quelqu’un y détecte une faute ou un problème quelconque..) :
    -  J’ai déplacé le contenu de la BOUCLE_principale du fichier livres_auteur.html vers un inclure/fichier.html (ici c’est ’livr_auteur’)
    -  A la place, j’ai mis cet ensemble de redirection :

    <BOUCLE_principale(LIVRES_AUTEURS){id_livres_auteur}>
    
    [(#SET{nomprenom, [(#NOM|strtoupper) ][(#PRENOM)]})]
    
    <BOUCLE_verif_auteur(ARTICLES){id_rubrique=6}{titre LIKE (#GET{nomprenom})}>
    [(#HTTP_HEADER{Location: [(#URL_ARTICLE|url_absolue)]})]#HTTP_HEADER{HTTP/1.1 301 Moved Permanently}#HTTP_HEADER{Status: 301 Moved Permanently}
    </BOUCLE_verif_auteur>
    
    #INCLURE{fond=inclure/livr_auteur,id_livre, nom, prenom, env} 
    
    <//B_verif_auteur>
        
    #INCLURE{fond=inclure/livr_auteur,id_livre, nom, prenom, env}
    
    </BOUCLE_principale>
    <//B_principale>

    Voilà donc cela semble marcher.. Les liens sur les auteurs (pages Livres) mènent bien vers les pages-annuaires si elle existent, sinon vers les pages livres_auteur.

    ... En attendant de faire mieux ))

    Répondre à ce message

  • 2

    Bonjour,
    merci pour ce plugin que j’ai installé sur un site (3.1.7) mais que je cherche à surcharger pour répondre à un besoin que d’ailleurs bien d’autres doivent aussi avoir :
    En effet il s’agit d’un site de labo comportant un ’annuaire’, une rubrique regroupant des articles de présentation des membres qui sont aussi auteurs, ou illustrateurs etc.

    Donc avec « Bouquinerie », je souhaite que les noms des gens listés pour un Livre (quelque soient leur ’rôles’) et pour lesquels il existe déjà des articles-annuaires, pointent vers ces pages et non vers les pages-auteurs (qui dans ce cas ne servent effectivement pas..). Et pour ceux n’ayant pas d’article-annuaire, on laisse le lien vers les pages-auteurs.

    Pour ce faire je cherche à surcharger le fichier inclure/auteur_signature.html en insérant au sein de la BOUCLE_auteur_livre (inchangée), une boucle ’verif_auteur’ de comparaison des noms avec les titres des articles annuaire pour que si ça « match », l’adresse du lien vers l’article se substitue à celle de la « fiche-auteur » #URL_LIVRES_AUTEUR. Voici le dernier état de mes tentatives (je mets l’ensemble du fichier) :

    <B_auteur_livre>
    [(#ROLE|=={traducteur}|oui)<div class='m-bottom-8'>#INFO_TRADUCTION*{livre,#ID_LIVRE}]
    [(#ROLE|=={illustrateur}|oui)<div class='m-bottom-8'>Illustrateur : ]
    [(#ROLE|=={prefacier}|oui)<div class='m-bottom-8'>Préface de ]
    [(#ROLE|=={postfacier}|oui)<div class='m-bottom-8'>Postface de ]
    
    <BOUCLE_auteur_livre(LIVRES_AUTEURS){id_livre?}{id_livres_auteur?}{role?}{", "}>
    
    [(#SET{nomprenom, [(#NOM|strtoupper) ][(#PRENOM)]})]
    <BOUCLE_verif_auteur(ARTICLES){id_rubrique=6}{titre LIKE (#GET{nomprenom})}>
    #SET{urlannuaire, #URL_ARTICLE}
    </BOUCLE_verif_auteur>
    
    [(#LIEN|oui)<a href="[(#GET{urlannuaire}|sinon{#URL_LIVRES_AUTEUR})]">][(#PRENOM) ]#NOM[(#LIEN|oui)</a>]
    
    </BOUCLE_auteur_livre>    
    [(#ROLE|!={ecrivain}|oui)</div>]
    </B_auteur_livre>

    (-le #NOM|strtoupper est nécessaire car la plupart des noms des membres sur les articles-annuaires sont rédigés en majuscules,
    -  la rubrique-annuaire est donc ici la 6).

    Malheureusement cela ne marche pas (bien) : sur un test avec un Livre comportant 2 auteurs avec article-annuaire + 2 auteurs sans article-annuaire + 1 ’illustrateur’ sans article-annuaire, seuls les 2 premiers auteurs pointent bien vers leur articles-annuaires quand les suivants ont acquis l’URL du second auteur au lieu de garder l’URL de leur page-auteur.. pas bon, donc.

    J’ai essayé pas mal de méthodes sans succès... auriez-vous une idée ?
    (Une autre possibilité serait, dés la création d’un Livre, de pouvoir sélectionner directement les auteurs dans la liste des articles-annuaire, mais là...)

    J’espère que vous pourrez m’aider pour la problème que je me suis posé )) !

    Merci beaucoup !

    Ah et puis : autre interrogation ou piste pour un développement futur, tout aussi potentiellement partagée par d’autres : un lien avec le plugin Zotspip (pour par exemple, réaliser une ’auto-complétion’ des champs de Livres avec les données de la réf. biblio zotero concernée)...

    • Hello

      J’imagine que la petite astuce suivante pourrait faire l’affaire :

      Tu crées un nouveau champ dans la table Auteurs de livres (spip_livres_auteurs) avec le plugin Champs extra nommé par exemple « id_presentation ».
      Une fois ce champ créé, tu le renseignes pour chaque auteur (de livre) avec l’id_article du l’article de présentation correspondant.

      Ensuite, à la place de ta boucle verif_auteur(ARTICLES), tu mets le code suivant

       [(#ID_PRESENTATION|oui)#SET{urlannuaire, #INFO_URL{article, #ID_PRESENTATION*}}]

      un lien avec le plugin Zotspip

      Wow ! intéressant, mais là une simple bidouille ne suffira pas je pense.

    • Hello et merci beaucoup pour ta réponse, porteuse d’alternative !

      En fait je voulais justement contourner la nécessité de Champs Extra...)). J’ai construit sur un autre site un catalogue de publications complètement avec Champs Extra et là ben, je souhaitais (avec enthousiasme) utiliser Bouquins pour ne pas charger Champs-Ex.. (que pour ça... sur un site par ailleurs déjà riche en plugins..).
      D’autre part cette soluce implique d’une part un travail non négligeable de complétion du champs pour les (très) nombreux ’auteurs’ existants (en plus de la copie de tous les articles-ouvrages sur les nlles pages-Livres) mais surtout l’instauration d’une nouvelle procédure à retenir pour les rédacteurs... qu’ils ne retiendront pas (espoirs abandonnés depuis longtemps)... il me faut automatiser.

      Alors dans la mesure où mon besoin implique une surcharge a priori minime, avec le sentiment d’être proche du ’Graal’ même s’il me reste à trouver la bonne méthode et syntaxe, j’aimerais persévérer.. )).
      Ma maîtrise de la programmation Spip, assez lacunaire, sollicite à nouveau ton aide... Je me dis aussi que cette réflexion (substitution des pages-auteurs par d’éventuelles pages préexistantes) serait utile au plugin.. en répondant aux besoins similaires d’énormément de sites du même type (peut-être sous forme d’une sélection de rubrique en config. ?).

      En tout cas je note soigneusement tes indications et les garde sous la main !
      Merci encore de ton aide,
      Thom

      PS : bé bizarre.. pas d’avertissement par mail de ta réponse...

    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