Collection de plugins open-source pour CollectiveAccess Providence (back-office).
Ces plugins sont principalement developpes en francais mais nous cherchons a les internationaliser progressivement. Les contributions et traductions sont les bienvenues.
Copier le dossier du plugin dans le repertoire app/plugins/ de Providence :
cp -r SaveAndStay /chemin/vers/providence/app/plugins/Les plugins sont auto-detectes par le ApplicationPluginManager de Providence.
Certains plugins lisent un fichier conf/<plugin>.conf qui contient une cle enabled (defaut : 0). Pour activer un plugin sur une instance specifique sans modifier le defaut versionne :
- Creer le fichier
conf/local/<plugin>.conf(le dossierconf/local/est gitignore) - Y placer les cles a surcharger, notamment
enabled = 1
Si conf/local/<plugin>.conf existe, il est utilise en lieu et place de conf/<plugin>.conf. Cela permet de versionner une configuration par defaut "off" tout en activant les plugins voulus instance par instance.
Plugins concernes par ce mecanisme : searchIdno, searchParent, frenchRevolutionaryCalendar, SimpleZ3950.
Rend la barre d'outils de l'editeur (Enregistrer / Annuler / Supprimer) fixe en haut de l'ecran, pour qu'elle reste visible lors du defilement dans les fiches longues. Restaure egalement la position de defilement apres l'enregistrement, pour ne pas perdre sa place dans le formulaire.
Hooks utilises : hookAppendToEditorInspector
Fonctionnement :
- Injecte du CSS pour rendre la
.control-boxsticky (position: sticky) - Sauvegarde la position de defilement dans un cookie ephemere (par type d'editeur et ID de fiche) au clic sur Enregistrer
- Restaure la position au rechargement de la page, puis supprime le cookie
Permet l'import de notices bibliographiques via le protocole Z39.50 (catalogues BnF, SUDOC, KBR, etc.) directement dans CollectiveAccess. Une entree "Z39.50" est ajoutee au menu Import du back-office.
Hooks utilises : hookRenderMenuBar
Dependances :
- Extension PHP
yaz(apt install php-yaz) - Un mapping
z3950_import_marc(UNIMARC →ca_objects) charge en base, specifique au modele de chaque instance
Voir SimpleZ3950/README.md pour la configuration des serveurs et les details d'utilisation.
Permet l'import de notices bibliographiques depuis PubMed (NCBI E-utilities) par PMID ou recherche textuelle. Une entree "PubMed" est ajoutee au menu Import du back-office.
Hook utilise : hookRenderMenuBar
Configuration (conf/SimplePubmed.conf) :
ncbi_api_key— cle API NCBI optionnelle (augmente le quota de requetes)max_results— nombre maximum de resultats par recherche texte (defaut 20)locale_id— locale utilisee pour les valeurs importeesdefault_type— type d'objet de repli si le type PubMed n'est pas mappetype_mapping— correspondance entre types de publication PubMed et typesca_objects
Permet l'import de notices depuis Gallica (BnF) directement dans CollectiveAccess. Une entree "Gallica" est ajoutee au menu Import du back-office. Deux modes : par ARK (un ou plusieurs ARK colles, appel OAIRecord) ou recherche textuelle plein-texte (SRU). Pour chaque notice retenue, cree un ca_objects avec idno = ARK, mappe les champs Dublin Core vers les attributs Cognitio-Fort (auteurs, date, description, editeurs, source, droits, motscles, url_entry, objets_lies) et attache automatiquement l'image haute resolution (/f1.highres) comme representation primaire (avec dedup MD5).
Hook utilise : hookRenderMenuBar
Permission requise : can_use_simple_gallica_plugin
Configuration (conf/SimpleGallica.conf) :
locale_id— locale d'importmax_results— nombre max de notices via SRU (defaut 20)default_type— typeca_objectsde repli (defauticonographie)type_mapping— correspondancedc:type→ type codeca_objects(test par sous-chaine)download_image— telechargement auto de l'image haute resolutionrate_limit_delay— delai en secondes entre deux requetes Gallica (defaut 5, min 3)user_agent— UA envoye a Gallica (UA navigateur requis pour/f1.highres)
Logo Gallica utilise avec permission de la BnF — voir Conditions d'utilisation de la marque Gallica. Source du logo : https://fr.wikipedia.org/wiki/Fichier:Gallica_logo.svg ; auteurs : Mgioux et Sette-quattro
Voir SimpleGallica/README.md.
Permet l'import de notices depuis le SUDOC (catalogue ABES) directement dans CollectiveAccess. Une entree "SUDOC" est ajoutee au menu Import du back-office. Deux modes : par identifiant (PPN, ISBN ou ISSN, type detecte automatiquement par format) ou recherche textuelle (titre / auteur via les index mti et aut). Pour chaque notice retenue, cree un ca_objects avec idno = PPN, type par defaut revue, et mappe les champs UNIMARC vers les attributs Cognitio-Fort (auteurs, date, description, editeurs, source, motscles, url_entry). Le parsing est fait en UNIMARC car le schema Dublin Core SRU du SUDOC ne contient pas le PPN.
Hook utilise : hookRenderMenuBar
Permission requise : can_use_simple_sudoc_plugin
Configuration (conf/SimpleSudoc.conf) :
locale_id— locale d'import (defaut7=fr_FRsur Cognitio-Fort)max_results— nombre max de notices via SRU texte (defaut 20)default_type— typeca_objectscree (defautrevue)rate_limit_delay— delai en secondes entre deux requetes SUDOC (defaut 2)user_agent— UA envoye a l'ABES
Voir SimpleSudoc/README.md.
Le SUDOC est un reseau documentaire pilote par l'ABES (Agence bibliographique de l'enseignement superieur). Le logo ABES utilise ici est disponible sur la page officielle Logo et ressources graphiques.
Remplace la barre noire en bas de page (liens Preferences et Logout) par un menu utilisateur en haut a droite (icone 👤). Cache le footer d'origine pour gagner de la place a l'ecran, particulierement utile sur tablette ou petit ecran.
Hook utilise : hookRenderMenuBar
Configuration (conf/providencePluginUserMenu.conf) :
footer— si1, affiche une ligne de footer minimaliste personnalisee en bas de page
Permet la saisie de dates dans le calendrier revolutionnaire francais (vendemiaire, brumaire, frimaire... an X). Intercepte les expressions de date avant le TimeExpressionParser et les convertit en dates gregoriennes.
Hook utilise : hookTimeExpressionParserPreprocessAfter
Activation : copier conf/frenchRevolutionaryCalendar.conf vers conf/local/frenchRevolutionaryCalendar.conf et passer enabled = 1. Voir frenchRevolutionaryCalendar/README.md.
Recherche rapide d'un objet ca_objects par son identifiant (idno, cote, n° d'inventaire...) avec wildcard *. Si un seul resultat, redirige directement vers la fiche ; sinon affiche un tableau DataTables filtrable.
Activation : copier conf/searchIdno.conf vers conf/local/searchIdno.conf et passer enabled = 1. L'attribut recherche est configurable via idno_element_code.
Note : le plugin n'ajoute pas de champ de recherche au header — c'est au theme cote client de pointer un formulaire vers /index.php/searchIdno/Do/Search. Voir searchIdno/README.md.
Ajoute un lien "Rechercher les parents d'objets" dans l'inspecteur d'un lot (ca_sets). Lance une recherche federee sur les parent_id de tous les objets du lot.
Hooks utilises : hookAppendToEditorInspector
Activation : copier conf/searchParent.conf vers conf/local/searchParent.conf et passer enabled = 1. Voir searchParent/README.md.
Editeur leger de listes et vocabulaires (ca_lists). Affiche un ensemble configurable de listes sous forme d'arbre hierarchique, permet le chargement progressif des items et l'ajout en masse de nouvelles valeurs depuis une zone de texte (un idno par ligne). Pensee comme une alternative plus rapide a l'editeur de listes natif quand un curateur doit parcourir ou enrichir plusieurs vocabulaires controles cote a cote.
Hook utilise : hookRenderMenuBar
Controller : EditorController
Permission requise : can_use_simplelist_plugin (a accorder via Manage → Access control → Roles).
Configuration (conf/simpleList.conf) :
pages— liste des pages a exposer ; chaque page regroupe plusieurs listes sous une seule entree de menu- chaque bloc de page definit
label(intitule du menu / titre de page),menu(cle du menu de premier niveau :find,edit,manage,import...) etlists(tableau deca_lists.list_codea afficher)
Voir simpleList/README.md.
Plugin metier bibliotheque/serie. Ajoute dans l'inspecteur de fiche d'objet, selon le type :
- pour les types listes dans
TypesNoticesAvecExemplaires(ex.book,bibliotheques) : un bouton "Ajouter un exemplaire" qui cree un objet enfant de type750(l'exemplaire physique). Si la fiche n'a pas encore de representation, tente de recuperer une couverture depuis OpenLibrary et Google Books a partir de l'ISBN (idno). - pour les types listes dans
TypesNoticesAvecEtatDesCollections(ex.serial) : un bouton "Ajouter un etat des collections" qui cree un objet enfant de type34764. - sur les fiches Etat des collections : un bouton ouvrant un panneau CKEditor 4 pour editer le contenu (route
/exemplaires/EtatDesCollections/Index/id/<id>).
Hooks utilises : hookAppendToEditorInspector
Controllers : EtatDesCollectionsController, ExternalController
Configuration (conf/exemplaires.conf ou conf/local/exemplaires.conf) :
TypesNoticesAvecExemplaires— liste des type codesca_objectsqui doivent recevoir le bouton "Ajouter un exemplaire"TypesNoticesAvecEtatDesCollections— liste des type codes qui recoivent le bouton "Ajouter un etat des collections"
Note : les type_id cibles (750, 34764) sont en dur dans le code et specifiques au modele de l'instance qui a vu naitre le plugin. A ajuster avant deploiement sur une autre installation.
Plugin developpe pour le Ministere de la Transition Ecologique (MTE). Permet la generation de constats d'etat et de catalogues directement depuis l'interface Providence.
Hooks utilises : hookAppendToEditorInspector, hookRenderMenuBar
Fonctionnalites :
- Ajoute un bouton "Constat d'etat" dans la barre laterale de l'editeur d'objet, generant un rapport au format DOCX a partir d'un modele
- Ajoute un menu "Catalogue" dans la barre de navigation principale avec deux entrees :
- Standard — generation de catalogue standard
- Specifique — generation de catalogue personnalise
- Inclut la recherche, le filtrage et l'export PDF/DOCX pour les vues de catalogue
GNU General Public License v3.0 — voir LICENSE pour les details.