/
z_coversheet_tags.pl
72 lines (61 loc) · 1.91 KB
/
z_coversheet_tags.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Example definition of tags that can be used in the coversheets
# when using potential utf-8 strings, use the encode() method on the string:
$c->{coversheet}->{tags} = {
'title' => sub { my ($eprint) = @_; return EPrints::Utils::tree_to_utf8($eprint->render_value('title')) ; },
'type' => sub { my ($eprint) = @_; return EPrints::Utils::tree_to_utf8($eprint->render_value('type')); },
'url' => sub { my ($eprint) = @_; return $eprint->get_url; },
'date' => sub {
my( $eprint ) = @_;
if( $eprint->is_set( "date" ) )
{
my $date = $eprint->get_value( "date" );
$date =~ /^([0-9]{4})/;
return $1 if defined $1;
}
return '';
},
'citation' => sub {
my ($eprint) = @_;
my $cit_str = EPrints::Utils::tree_to_utf8($eprint->render_citation,undef,undef,undef,1 );
return $cit_str;
},
'creators' => sub {
my ($eprint) = @_;
my $field = $eprint->dataset->field("creators_name");
if ($eprint->is_set( "creators_name" ) )
{
return EPrints::Utils::tree_to_utf8($field->render_value($eprint->repository, $eprint->get_value("creators_name"), 0, 1) );
}
elsif ($eprint->is_set( "editors_name" ) )
{
$field = $eprint->dataset->field("editors_name");
return "Edited by: " . EPrints::Utils::tree_to_utf8($field->render_value($eprint->repository,$eprint->get_value("editors_name"), 0, 1) );
}
else
{
return '';
}
},
'doi_url' => sub {
my ($eprint) = @_;
if ($eprint->is_set( "id_number" ) )
{
my $value = $eprint->get_value( "id_number" );
$value =~ s|^http://dx\.doi\.org||;
if( $value !~ /^(doi:)?10\.\d\d\d\d\// )
{
return $value;
}
else
{
$value =~ s/^doi://;
return "http://dx.doi.org/$value";
}
}
else
{
return '';
}
},
};
1;