Skip to content

Plugin per EPrints per la generazione di identificatori persistenti urn:nbn

Notifications You must be signed in to change notification settings

depositolegale/eprints-nbn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

EPRINTS NBN

Plugin per EPrints per l'assegnazione automatica di identificatori urn:nbn

Installazione

copiare il contenuto della directory EPrints in {ARCHIVE}/cfg/plugins (installazione locale al singolo archivio) oppure in /perl_lib (installazione globale, usabile da tutti gli archivi nella medesima installazione)

Credenziali

credenziali di autenticazione al webservice, ottenute in seguito all'adesione al servizio

{ARCHIVE}/cfg/cfg.d/nbn.pl

  $c->{nbnuser} = '';
  $c->{nbnpassword} = '';

Nuovi fields

gli identificatori urn:nbn saranno salvati in un nuovo field dell'oggetto EPrint (mappato con una nuova colonna della database)

{ARCHIVE}/cfg/cfg.d/eprint_fields.pl

  {
      name => 'nbncheck',
      type => 'boolean',
      input_style => 'checkbox',
  },
  {
      name => 'nbn',
      type => 'text',
  },
  {
      name => 'nbnlog',
      type => 'text',
  }

aggiornare la struttura del database

  % ./bin/epadmin update_database_structure {ARCHIVE} --verbose

Visualizzazione di una checkbox per la generazione dell'nbn

aggiungere la configurazione seguente al workflow (nella posizione più adatta). verrà visualizzata una checkbox ai soli utenti amministratori

{ARCHIVE}/cfg/workflows/eprint/default.xml

  <epc:if test="$current_user{usertype} = 'admin'">
      <component type="Field::Multi">
              <title>NBN</title>
              <epc:if test="nbncheck != 'TRUE' ">
                      <field ref="nbncheck" required="no" />
              </epc:if>
              <epc:if test="is_set(nbn)">
                      <field ref="nbn" required="no" />
              </epc:if>
      </component>
   </epc:if>

Salvataggio dell'nbn

al salvataggio dell'EPrints (o dopo un'avanzamento di step nel workflow) verrà chiamato il webservice del registro nbn e in seguito ad una risposta positiva verrà salvato l'identificatore nel database

{ARCHIVE}/cfg/cfg.d/eprint_fields_automatic.pl

  if ($eprint->is_set("nbncheck")) {
    my $nbncheck = $eprint->get_value("nbncheck");
    if ( $nbncheck eq 'TRUE' && !$eprint->is_set("nbn") )
    {
      my $metadataurl = "http://".$c->{host}.
      "/cgi/oai2?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai:".
      $c->{oai}->{v2}->{archive_id}.":".$eprint->id;
      my ($ret, $status) = EPrints::NBN::Webservice::mint( $eprint->get_url(), $metadataurl );
      if ($ret eq '201') {
        $eprint->set_value("nbn", $status->{'nbn'});
      } else {
        $eprint->set_value("nbnlog", $status->{'status'});
        $eprint->set_value("nbncheck", "FALSE");
      }
    }
  }

Visualizzazione dell'nbn nella pagina di dettaglio dell'eprint

modificare {ARCHIVE}/cfg/citations/eprint/summary_page.xml o {ARCHIVE}/cfg/cfg.d/eprint_render.pl per visualizzare il contenuto del field nbn

Licenza

Public Domain

About

Plugin per EPrints per la generazione di identificatori persistenti urn:nbn

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages