Permalink
Cannot retrieve contributors at this time
143 lines (115 sloc)
6.27 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Enable the plugin | |
| $c->{plugins}{"Export::DataCiteXML"}{params}{disable} = 0; | |
| $c->{plugins}{"Event::DataCiteEvent"}{params}{disable} = 0; | |
| # which field to use for the doi | |
| $c->{datacitedoi}{eprintdoifield} = "id_number"; | |
| #for xml:lang attributes in XML | |
| $c->{datacitedoi}{defaultlangtag} = "en-GB"; | |
| #When should you register/update doi info. | |
| $c->{datacitedoi}{eprintstatus} = {inbox=>0,buffer=>1,archive=>1,deletion=>0}; | |
| # Choose which EPrint types are allowed (or denied) the ability to coin DOIs. Keys must be lower case and be eprints *types* not *type_names*. | |
| # Entries here can be explicitly skipped by setting 0; however those not listed with a 1 are not given a Coin DOI button by default. | |
| # To include the 'Coin DOI' button on all types leave this undefined. | |
| # $c->{datacitedoi}{typesallowed} = { | |
| # 'article'=>0, # Article | |
| # 'thesis'=>1, # Thesis | |
| # 'creative_works' => 1, # Creative Works | |
| # 'dataset' => 1, # Dataset | |
| # }; | |
| #set these (you will get the from data site) | |
| # doi = {prefix}/{repoid}/{eprintid} | |
| $c->{datacitedoi}{prefix} = "10.5072"; | |
| $c->{datacitedoi}{repoid} = $c->{host}; | |
| $c->{datacitedoi}{apiurl} = "https://mds.test.datacite.org/"; | |
| $c->{datacitedoi}{user} = "USER"; | |
| $c->{datacitedoi}{pass} = "PASS"; | |
| # Backend library used for connecting to API; defaults to LWP (configuration item unset) but can also be Curl (configuration item set). | |
| # $c->{datacitedoi}{use_curl} = "yes"; | |
| # Priviledge required to be able to mint DOIs | |
| # See https://wiki.eprints.org/w/User_roles.pl for role and privilege configuration | |
| $c->{datacitedoi}{minters} = "eprint/edit:editor"; | |
| # DataCite requires a Publisher | |
| # The name of the entity that holds, archives, publishes, | |
| # prints, distributes, releases, issues, or produces the | |
| # resource. This property will be used to formulate the | |
| # citation, so consider the prominence of the role. | |
| # eg World Data Center for Climate (WDCC); | |
| $c->{datacitedoi}{publisher} = "EPrints Repo"; | |
| # Namespace and location for DataCite XML schema | |
| # feel free to update, though no guarantees it'll be accepted if you do | |
| $c->{datacitedoi}{xmlns} = "http://datacite.org/schema/kernel-4"; | |
| # Try this instead: | |
| # $c->{datacitedoi}{schemaLocation} = $c->{datacitedoi}{xmlns}." ".$c->{datacitedoi}{xmlns}."/metadata.xsd"; | |
| $c->{datacitedoi}{schemaLocation} = $c->{datacitedoi}{xmlns}." http://schema.datacite.org/meta/kernel-4/metadata.xsd"; | |
| # Need to map eprint type (article, dataset etc) to DOI ResourceType | |
| # Controlled list http://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf | |
| # where v is the ResourceType and a is the resourceTypeGeneral | |
| #$c->{datacitedoi}{typemap}{book_section} = {v=>'BookSection',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{article} = {v=>'Article',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{monograph} = {v=>'Monograph',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{thesis} = {v=>'Thesis',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{book} = {v=>'Book',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{patent} = {v=>'Patent',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{artefact} = {v=>'Artefact',a=>'PhysicalObject'}; | |
| $c->{datacitedoi}{typemap}{exhibition} = {v=>'Exhibition',a=>'InteractiveResource'}; | |
| $c->{datacitedoi}{typemap}{composition} = {v=>'Composition',a=>'Sound'}; | |
| $c->{datacitedoi}{typemap}{performance} = {v=>'Performance',a=>'Event'}; | |
| $c->{datacitedoi}{typemap}{image} = {v=>'Image',a=>'Image'}; | |
| $c->{datacitedoi}{typemap}{video} = {v=>'Video',a=>'Audiovisual'}; | |
| $c->{datacitedoi}{typemap}{audio} = {v=>'Audio',a=>'Sound'}; | |
| $c->{datacitedoi}{typemap}{dataset} = {v=>'Dataset',a=>'Dataset'}; | |
| $c->{datacitedoi}{typemap}{experiment} = {v=>'Experiment',a=>'Text'}; | |
| $c->{datacitedoi}{typemap}{teaching_resource} = {v=>'TeachingResourse',a=>'InteractiveResource'}; | |
| $c->{datacitedoi}{typemap}{other} = {v=>'Misc',a=>'Collection'}; | |
| #For use with recollect | |
| $c->{datacitedoi}{typemap}{data_collection} = {v=>'Dataset',a=>'Dataset'}; | |
| $c->{datacitedoi}{typemap}{collection} = {v=>'Collection',a=>'Collection'}; | |
| ########################### | |
| #### DOI syntax config #### | |
| ########################### | |
| # Set config of DOI delimiters | |
| # Feel free to change, but they must conform to DOI syntax | |
| # If not set will default to prefix/repoid/id the example below gives prefix/repoid.id | |
| $c->{datacitedoi}{delimiters} = ["/","."]; | |
| # If set, plugin will attempt to register what is found in the EP DOI field ($c->{datacitedoi}{eprintdoifield}) | |
| # Will only work if what is found adheres to DOI syntax rules (obviously) | |
| $c->{datacitedoi}{allow_custom_doi} = 0; | |
| #Datacite recommend digits of length 8-10 set this param to pad the id to required length | |
| $c->{datacitedoi}{zero_padding} = 8; | |
| ########################################## | |
| ### Override which URL gets registered ### | |
| ########################################## | |
| #Only useful for testing from "wrong" domain (eg an unregistered test server) should be undef for normal operation | |
| $c->{datacitedoi}{override_url} = undef; | |
| ########################## | |
| ##### When to coin ? ##### | |
| ########################## | |
| #If auto_coin is set DOIs will be minted on Status change (provided all else is well) | |
| $c->{datacitedoi}{auto_coin} = 0; | |
| #If action_coin is set then a button will be displayed under action tab (for staff) to mint DOIs on an adhoc basis | |
| $c->{datacitedoi}{action_coin} = 1; | |
| # NB setting auto_coin renders action coin redundant as only published items can be registered | |
| ####### Formerly in cfg.d/datacite_core.pl ######### | |
| # Including datacite_core.pl below as we can make some useful decisions based on the above config. | |
| ## Adds the minting plugin to the EP_TRIGGER_STATUS_CHANGE | |
| if($c->{datacitedoi}{auto_coin}){ | |
| $c->add_dataset_trigger( "eprint", EP_TRIGGER_STATUS_CHANGE , sub { | |
| my ( %params ) = @_; | |
| my $repository = $params{repository}; | |
| return undef if (!defined $repository); | |
| if (defined $params{dataobj}) { | |
| my $dataobj = $params{dataobj}; | |
| my $eprint_id = $dataobj->id; | |
| $repository->dataset( "event_queue" )->create_dataobj({ | |
| pluginid => "Event::DataCiteEvent", | |
| action => "datacite_doi", | |
| params => [$dataobj->internal_uri], | |
| }); | |
| } | |
| }); | |
| } | |
| # Activate an action button, the plugin for which is at | |
| # /plugins/EPrints/Plugin/Screen/EPrint/Staff/CoinDOI.pm | |
| if($c->{datacitedoi}{action_coin}){ | |
| $c->{plugins}{"Screen::EPrint::Staff::CoinDOI"}{params}{disable} = 0; | |
| } |