Bibliothèques et centres de documentation

Portail Web pour PMB

Ce portail web pour PMB contient un squelette prêt à l’emploi compatible avec les thèmes ZPIP. L’interface avec le catalogue pmb s’effectue par les webservices pmb disponibles à partir de la version 3.3.

PMB est un Sigb (Système Intégré de Gestion de Bibliothèque) libre.

SIGB : Un système intégré de gestion de bibliothèque est un progiciel destiné à la gestion informatique des différentes tâches d’une bibliothèque.

Ce plugin propose une interface robuste [1]entre SPIP et PMB, ce qui offre une solution complète et libre pour les bibliothèques et centres de documentation qui souhaitent se doter d’un portail web.

Fonctionnalités

-  Fusion complète des comptes de lecteurs PMB et des utilisateurs SPIP [2]
-  Navigation dans le catalogue : notices, auteurs, éditeurs, collections, ... Plusieurs localisations possibles
-  Mise en avant des dernières acquisitions (affichage du contenu des bannettes pmb)
-  Recherche avancée de notices
-  Dernières notices consultées
-  Accès au compte de lecteur : réservations en cours, prêts en cours, prêts en retard
-  Disponibilité des exemplaires
-  Documents numériques attachés
-  Suggestions de notices empruntées également par d’autres lecteurs
-  Reservation en ligne

Le projet Risom : ce projet pilote SPIP-PMB, est un exemple d’intégration réussie du plugin dans un portail web : Animations, Expositions, écoute des conférences en streaming, découvrir le site

Installation

Une documentation vous propose un tutoriel détaillé pour installer le portail SPIP-PMB en une heure

Installez les plugins suivants :
(tous ces pugins sont installables automatiquement si vous créez préalablement un répertoire ’auto’ avec droits en écriture dans /plugins)
-  cfg
-  spip-bonux
-  menus
-  zpip
-  spip-pmb : Portail Web pour PMB

Ensuite, choisissez un thème pour zpip de votre choix (plugins dont le nom est préfixé par ’theme_’).

Rendez vous dans Configuration->CFG puis SPIP-PMB et renseignez les bonnes valeurs pour Adresse et wsdl, voir la documentation de PMB 3.3 pour l’activation des connecteurs sortants.

Paramétrez le menu principal avec le plugin Menus. Vous pouvez ajouter un lien vers le catalogue (?page=catalogue) ou vers les nouveautés (?page=nouveautes).

Créez ensuite un « site référencé » dans SPIP, dont le flux RSS est celui de la bannette [3] des actualités que vous souhaitez afficher en page d’accueil. Exemple de flux : http://tence.bibli.fr/opac/rss.php?id=10

Attention par défaut dans SPIP la gestion des sites référencés n’est pas activée, il faut l’activer dans Configuration->Référencement de sites et syndication->Gérer un annuaire de sites Web

Par défaut les lecteurs PMB seront importés dans SPIP avec le statut « visiteur », vous pouvez modifier le statut attribué par défaut, par exemple pour créer des « rédacteurs » en modifiant le fichier pmb_mes_options.php

Affichage d’une notice

Un nouveau modèle spip, le modèle <notice>

Pour lier du contenu SPIP (Article, rubrique, mot clef,...) à une notice, vous pouvez coller, dans les textes, le code <noticeXXX> où XXX correspond à l’id de la notice.

Par exemple, vous rédigez la critique d’un ouvrage (article SPIP) et vous souhaitez insérer en dessous les informations sur l’ouvrage issues de PMB, la balise s’utilise ainsi :

-  <noticeXXX> affiche les informations (auteur, éditeur, nombre de pages, ...), la disponibilité, les documents numériques attachés, les emprunts des autres lecteurs, le lien pour réserver l’ouvrage
-  <noticeXXX|afficher_logo=oui> : affiche également la couverture
-  <noticeXXX|afficher_logo=oui> : affiche également le résumé
-  <noticeXXX|afficher_info=non> : n’affiche pas les informations (auteur, éditeur, nombre de pages, ...)
-  <noticeXXX|afficher_info=non> : n’affiche pas les informations (auteur, éditeur, nombre de pages, ...)
-  <noticeXXX|afficher_docnum=non> : n’affiche pas les documents numériques attachés
-  <noticeXXX|afficher_dispo=non> : n’affiche pas la disponibilité
-  <noticeXXX|afficher_autres=non> : n’affiche pas les emprunts des autres lecteurs
-  <noticeXXX|afficher_toolbox=non> : n’affiche pas le lien pour la réservation

Tous les paramètres peuvent bien sûr être combinés.

Exemple : http://portailweb.sigb.net/critique...

Annexe : configuration

La configuration CFG du plugin mentionne que l’on peut interroger PMB avec 2 API (SOAP & JSON-RPC) mais la documentation ne mentionne que l’exploitation avec SOAP, alors que la seconde est plus rapide et préférable : effectivement, elle ne nécessite pas de librairie PHP particulière (le fichier gérant json-rpc est directement inclus dans le plugin).

Pour activer JSON RPC, il faut suivre la procédure indiquée là : http://doc.sigb.net/doc_portail_spi... à quelques détails près :

Vous n’avez pas besoin des librairies PHP en théorie

Dans « Paramétrer PMB » > Créer une source SOAP, il faut évidemment créer une JSON-RPC, mais également activer tout le contenu du groupe « pmbes_Search » (en fait, je vous conseille de tout activer dans « fonctions de l’API exportées », même pour SOAP !)

Dans SPIP, il faudra copier l’url du connecteur JSON-RPC dans le formulaire CFG sur la ligne correspondante.

Notes

[1basée sur l’implémentation des webservices PMB disponibles à partir de la version 3.3 de PMB

[2Les lecteurs sont donc identifiés à la fois dans spip (pour proposer un article si statut de rédacteur, pour bénéficier des fonctions SPIP d’accès restreint à certaines rubriques, identification automatique aux forums..etc..) et dans PMB (accès au compte de lecteur, réservation d’ouvrages …)

[3Les bannettes doivent être créées préalablement dans PMB

Discussion

73 discussions

  • Bonjour à tous, J’ai encore un petit probleme. J’ai effectivement bien créer la table spip_auteurs_pmb mais apparament quand j’ajoute un utilisateur dans spip il n’est pas présent dans pmb et la table spip_auteurs_pmb reste vide... Ya t’il un parametrage suplémentaire ? merci d’avance

    Répondre à ce message

  • 2

    Bonjour !

    De mon côté l’installation du plugin échoue également, à cause de pmb_mes_fonctions.php (ligne 34, puis 65, etc...) ; est ce que je passe à côté de quelque chose ?

    Merci d’avance
    Charlotte

    • Bonjour,

      serait-il possible d’avoir le message d’erreur ? et d’en savoir plus sur la machine (surtout sous quel windows elle est)

    • Bonjour,
      Nous avions la même erreur sur un site hébergé par OVH. Après quelques recherches, il semblerait que ce soit la fonction try du fichier pmb_mesfonctions.php qui n’était pas correctement interprété par la version de php active sur notre site.

      L’insertion de la ligne :

      SetEnv PHP_VER 5_TEST

      dans le fichier .htaccess nous a permit de passer à php 5.3 (http://guides.ovh.net/Php5ChezOvh) et le problème semble résolu.

    Répondre à ce message

  • William

    Bonjour,

    j’ai changé d’ordinateurs pour faire des tests. J’arrive à installer PMB, SPIP et le plugin. Cependant, quand je suis sur la page d’accueil du SPIP, j’ai ce message d’erreur sur la droite :

    Mon site SPIP
    Exception reçue (15) : SOAP-ERROR : Parsing WSDL : Couldn’t load from ’http://localhost/pmb/ws/connector_out.php?source_id=1&wsdl’ : Extra content at the end of the document
    Fatal error : Call to a member function pmbesOPACGeneric_list_locations() on a non-object in D :\wamp\www\Portail\plugins\auto\spip-pmb\pmb_mes_fonctions.php on line 94

    Quelqu’un pourrait-il m’éclairer ?

    Répondre à ce message

  • William

    Bonjour,

    tout d’abord, je tiens à vous remercier pour ce plugin qui a le double avantage d’être très utile et d’être gratuit.

    Ensuite (comme beaucoup ici ^^), je m’adresse à vous car j’ai un problème mais qu’on m’a apporté une solution (que je n’ai pas encore etsté) :

    lorsque l’on se trouve sur la page d’accueil du site en tant que visiteur, la partie droite est un message d’erreur. Je me suis donc rendu sur une des pages et j’ai pu avoir le message d’erreur complet :

    Fatal error : Class ’SoapClient’ not found in C :\wamp\www\portail\plugins\auto\spip-pmb\pmb_mes_fonctions.php on line 772

    En allant regarder le code à l’endroit indiqué, j’ai vu effectuement qu’un new SoapClient était créé mais qu’auparavant aucun SoapClient n’était défini.

    Il faut apparemment installer l’extension SOAP dans php pour y remédier.

    Répondre à ce message

  • Jean-Victor Marie

    Pour tout faire fonctionner si problème de type autorpmb, ajouter manuellement la table autor pmb. La démarche est la suivant :

    -  Copiez collé ce texte dans un fichier bloc note :

    CREATE TABLE IF NOT EXISTS spip_auteurs_pmb (
    id_auteur_pmb bigint(21) NOT NULL auto_increment,
    id_auteur bigint(21) NOT NULL default ’0’,
    pmb_session varchar(255) NOT NULL,
    pmb_firstname varchar(255) NOT NULL,
    pmb_lastname varchar(255) NOT NULL,
    pmb_barcode varchar(255) NOT NULL,
    pmb_address_part1 varchar(255) NOT NULL,
    pmb_address_part2 varchar(255) NOT NULL,
    pmb_address_cp varchar(255) NOT NULL,
    pmb_address_city varchar(255) NOT NULL,
    pmb_phone_number1 varchar(255) NOT NULL,
    pmb_phone_number2 varchar(255) NOT NULL,
    pmb_email varchar(255) NOT NULL,
    pmb_birthyear varchar(255) NOT NULL,
    pmb_location_id varchar(255) NOT NULL,
    pmb_location_caption varchar(255) NOT NULL,
    pmb_adhesion_date varchar(255) NOT NULL,
    pmb_expiration_date varchar(255) NOT NULL,
    PRIMARY KEY (id_auteur_pmb),
    KEY id_syndic (id_auteur)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=514 ;

    -  Allez dans phpmyadmin (édition de la base mysql)
    -  Rendez vous dans la base spip
    -  Onglet « importer », puis « fichier à importer », sélectionnez votre fichier texte
    -  Exécuter, puis Exécuter.

    Voila premier problème réglé !

    Pour les problèmes lié au JSON-RPC c’est encore plus simple. Suivez le tutoriel en ligne « Une documentation vous propose un tutoriel détaillé pour installer le portail SPIP-PMB en une heure » disponible plus haut.
    Arrivez à la page « Créer un webservice SOAP dans PMB » et bien en fait n’utilisez pas SOAP, mais JSON-RPC. La configuration est la même, mais chaque fois que vous verrez « trucbidule SOAP » remplacé par « trucbidule JSON-RPC » !

    Voila !

    Répondre à ce message

  • 1

    Bonjour
    Après installation de spip 2.1.8 et du plugin spip-pmb (avec création de la table spip_users_pmb à la main), impossible de modifier quoi que ce soit dans l’espace privé de spip : accès interdit.
    Pb de spip 2.1.8 ou de l’association spip et des plugins nécessaires au portail spip-pmb ?
    Cordialement, Régis.

    • en principe c’est corrigé dans la dernière version (R44943)
      il faut supprimer plugins/spip-pmb/formulaires/login.html

    Répondre à ce message

  • Bonjour,
    J’ai un soucis lors de l’activation du module pmb-spip (version 1.0.2 revision 40143 25 août 2010) :
    J’ai installé tous les modules :
    -  HigherGround 1.1 1.1 - stable
    -  cfg : moteur de configuration 1.16.0 - stable
    -  HTML5 dans SPIP 0.2.1 - en développement
    -  Menus 0.8.10 - en test
    -  SPIP Bonux 2.2.17 - stable
    -  Squelettes Z pour SPIP (Zpip) 1.7.9 - stable

    Lorsque j’active le module, j’ai :

     Parse error: syntax error, unexpected '{'  in [...]spip/plugins/auto/spip-pmb/pmb_mes_fonctions.php on line 34

    J’ai bien essayer de regarder le fichier (pmb_mes_fonctions.php) mais je ne trouve rien qui puisse m’aider et je ne suis pas assez bon pour trouver ce qui ne va pas . J’ai essayé de supprimer une accolade à la ligne 34 mais cela ne change rien.

    Si quelqu’un a une idée.

    Merci

    Répondre à ce message

  • Bonjour,
    Après avoir bien tous lu et fait les correctifs proposé... voici les messages d’erreurs que je continu d’avoir :
    Warning : fopen() [function.fopen] : Filename cannot be empty in C :\EasyPHP5.2.10\www\portail\plugins\auto\spip-pmb\jsonRPCClient.php on line 176
    Exception reçue (8) : Unable to connect to
    Warning : fopen() [function.fopen] : Filename cannot be empty in C :\EasyPHP5.2.10\www\portail\plugins\auto\spip-pmb\jsonRPCClient.php on line 176
    Exception reçue (8) : Unable to connect to

    et

    Warning : fopen() [function.fopen] : Filename cannot be empty in C :\EasyPHP5.2.10\www\portail\plugins\auto\spip-pmb\jsonRPCClient.php on line 176
    Exception reçue (3) : Unable to connect to

    Si vous avez des idées...

    Merci pour le partage de vos connaissances.

    Répondre à ce message

  • 2

    Bonjour tout le monde ;
    je viens de mettre en place un portail SPIP-PMB et j’ai un petit soucis depuis plus 1h now !
    j’aimerais dans l’affichage des éléments d’un ouvrage afficher aussi les mots clés .
    je sais que je dois modifier le fichier inc-notice_display.html mais je n’y arrive pas je sais pas comment trop m’y prendre !!!
    un coup de main serait le bienvenu

    Merci d’avance

    • peut être que cela peut éclaircir des pistes :
      dans mon fichier inc-notice_display.html
      j’ai l’exemple :

        <table class="spip pmb-tableau">
      			      <tbody>
      			      [<tr><td><strong><:pmb:auteur :></strong></td><td>(#ENVnotice|pmb_notice_champ’liensauteurs’)[, (#ENVnotice|pmb_notice_champ’liensauteurs2’)][, (#ENVnotice|pmb_notice_champ’liensauteurs23’)]
       
      			      </td></tr>]
      			      [<tr><td><strong><:pmb:serie :></strong></td><td>(#ENVnotice|pmb_notice_champ’serie’)</td></tr>]
      			      [<tr><td><strong><:pmb :type :></strong></td><td>(#ENVnotice|pmb_notice_champ’type’)</td></tr>]
      			      [<tr><td><strong><:pmb:editeur :></strong></td><td>[(#ENVnotice|pmb_notice_champ’id_editeur’|oui)<a href="[(#URL_PAGEpublisher_see|parametre_urlid,[(#ENVnotice|pmb_notice_champ’id_editeur’)])]">](#ENVnotice|pmb_notice_champ’editeur’)[(#ENVnotice|pmb_notice_champ’id_editeur’|oui)</a>]</td></tr>]
      			      [<tr><td><strong><:pmb:collection :></strong></td><td>[(#ENVnotice|pmb_notice_champ’id_collection’|oui)<a href="[(#URL_PAGEcoll_see|parametre_urlid,[(#ENVnotice|pmb_notice_champ’id_collection’)])]">](#ENVnotice|pmb_notice_champ’collection’)[(#ENVnotice|pmb_notice_champ’id_collection’|oui)</a>]</td></tr>]
      			      [<tr><td><strong><:pmb:format :></strong></td><td>(#ENVnotice|pmb_notice_champ’format’)</td></tr>]
      			      [<tr><td><strong><:pmb:annee_publication :></strong></td><td>(#ENVnotice|pmb_notice_champ’annee_publication’)</td></tr>]
      			      [<tr><td><strong><:pmb:importance :></strong></td><td>(#ENVnotice|pmb_notice_champ’importance’)</td></tr>]
      			      [<tr><td><strong><:pmb:presentation :></strong></td><td>(#ENVnotice|pmb_notice_champ’presentation’)</td></tr>]
      			      [<tr><td><strong><:pmb:isbn :></strong></td><td>(#ENVnotice|pmb_notice_champ’isbn’)</td></tr>]
      			      </tbody>
      			  </table>

      merci d’avance

    • up !!
      toujours pas de réponse

    Répondre à ce message

  • Un petit bug que j’avais sur la dernière version de spip-pmb.
    En fin de notice, il y avait ce message « Cannot use object of type stdClass as array in /var/www/plugins/auto/spip-pmb/pmb_mes_fonctions.php on line 643 »

    Pour le corriger, en ligne 643, il faut remplacer le = par ->, comme ci-dessous :
    $listenotices[] = $notice->notice_id ;

    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