Add-ons

Un add-on est simplement un plugin Koha qui implémente un ou plusieurs hook(s) appelés par le plugin principal.

Un add-on est utilisé pour prendre en compte des cas spécifiques qui ne peuvent pas être configurés par la configuration du plugin comme les correspondances complexes ou les transformations de données non habituelles.

Créer un add-on

Premièrement, créer le dossier du plugin. Cela doit respecter la structure: my-plugin-name/Koha/Plugin/Com/Biblibre/MyPluginName.pm.

Une bonne pratique est de nommer dossier du plugin comme « koha-plugin-myplugin-patron-import ».

koha-plugin-myplugin-patron-import/Koha/Plugin/Com/Biblibre/MyPlugin.pm

Créer ce dossier à un endroit que Koha peut lire/accéder.

Votre plugin doit contenir au minimum ce code afin qu’il soit installé par l’installation de plugin Koha: Ici le début d’un plugin nommé “Exemple”:

package Koha::Plugin::Com::Biblibre::Example;

use base qw(Koha::Plugins::Base);

our $VERSION = '1.0';

our $metadata = {
    name            => 'Example Add-on for Patron Import plugin',
    author          => 'Joe Bar <joe.bar@foo.com>',
    description     => 'Example Add-on for Patron Import plugin',
    date_authored   => '2022-10-30',
    date_updated    => '2020-10-30',
    minimum_version => '21.11',
    maximum_version => undef,
    version         => $VERSION,
};

sub new {
    my ( $class, $args ) = @_;

    $args->{'metadata'} = $metadata;
    $args->{'metadata'}->{'class'} = $class;

    my $self = $class->SUPER::new($args);

    return $self;
}

1;

Hooks

Un hook est appelé plusieurs fois durant un import. Chaque hook correspond à un moment spécifique de l’import. Voir la section “Hooks disponibles” ci-dessous afin d’apprendre quand ils sont appelés et comment les implémenter.

Pour implémenter un hook, ajouter le dans l’add-on:

sub patron_import_mapping_preprocess {
    my ($self, $data, $borrower) = @_;

    # your specific code here.
}

Hooks disponibles:

Astuce

Pour les utilisateurs autorisés, vous pouvez regarder l’add-on d’exemple <https://git.biblibre.com/Add-on-patron-import/koha-plugin-example-patron-import/src/branch/master/Koha/Plugin/Com/Biblibre/Example.pm>`__.

Ici sont listés les hooks disponibles et la manière dont ils doivent être manipulés.

  • patron_import_mapping_postprocess

Ce hook est appelé juste après les correspondances faites au travers du mapping paramétré.
$borrower est le futur adhérent Koha.
sub patron_import_mapping_postprocess {
    my ($self, $borrower) = @_;
}
  • patron_import_patron_update

Appelé avant qu’un adhérent soit mis à jour dans Koha.
$patron est l’adhérent entrant
$extended_attributes contient les attributes étendus de l’adhérent entrant
$stored_patron est l’adhérent courant
$stored_extended_attributes contient les attributs étendus de l’adhérent courant
sub patron_import_patron_update {
    my ($self, $patron, $extended_attributes, $stored_patron, $stored_extended_attributes) = @_;
}
  • patron_import_patron_updated

Appelé après qu’un adhérent soit mis à jour dans Koha.
$borrowernumber est le borrowernumber de l’adhérent mis à jour.
sub patron_import_patron_updated {
    my ($self, $borrowernumber) = @_;
}
  • patron_import_patron_create

Appelé avant que l’adhérent ne soit crée dans Koha.
$patron est l’adhérent entrant
$extended_attributes contient les attributes étendus de l’adhérent entrant
sub patron_import_patron_create {
    my ($self, $patron, $extended_attributes) = @_;
}
  • patron_import_patron_created

Appelé après que l’adhérent eut été crée dans Koha.
$borrowernumber est le borrowernumber de l’adhérent mis à jour.
sub patron_import_patron_created {
    my ($self, $borrowernumber) = @_;
}
  • patron_import_to_skip

Appelé pour définir si l’adhérent doit être ignorés durant l’import.
$patron id de l’adhérent entrant correspondant.
sub patron_import_to_skip {
    my ($self, $patron) = @_;
}
  • patron_import_patron_exists

Appelé pour définir une condition additionnelle après le résultat du dédoublonnage.
$patron est l’adhérent correspondant entrant. $borrowernumber est le borrowernumber trouvé (ou non) suite au dédoublonnage
sub patron_import_patron_exists {
    my ($self, $patron, $borrowernumber) = @_;
}

Maintenant que vous avez crée votre add-on, vous devez l’installer.

Installation

Etapes d’installation:
  1. Cloner ou mettre à jour l’add-on sur le serveur

  2. Ajouter le dans le fichier de configuration Koha

  3. Lancer l’installeur de plugin

  4. Activer l’add-on

  5. Lier l’add-on à un import configuré

Cloner ou mettre à jour l’add-on sur le serveur

Placer vos dossiers d’add-ons de façon à ce que Koha puisse accéder à ceux-çi

koha@koha:~$ cd /home/koha/lib/
koha@koha:~$ git clone https://git.biblibre.com/Add-on-patron-import/koha-plugin-example-patron-import.git

Ajouter le dans le fichier de configuration Koha

Editer le fichier koha-conf.xml et ajouter un élement <pluginsdir>

<config>
  <pluginsdir>/home/koha/lib/koha-plugin-example-patron-import</pluginsdir>

A présent, redémarrer les services Koha et nettoyer le cache.

Lancer l’installeur de plugin

Aller dans le code de Koha et lancer la commande:

koha@koha:~$ /home/koha/src/
koha@koha:~$ perl misc/devel/install_plugins.pl

Vous devriez voir ceci lorsque votre plugin s’est correctement installé:

Installed Example Add-on for Patron Import plugin version 1.0
All plugins successfully re-initialised

Activer l’add-on

Avant d’être utilisé par Koha ou par d’autres plugins l’add-on doit être activé.
Aller à la page d’accueil des plugins (cgi-bin/koha/plugins/plugins-home.pl), trouver l’add-on, cliquer sur Actions et sur le bouton Enable.