[EP-tech] Re: Modifying compound fields with eprint_fields_automatic
Lizz Jennings
e.jennings at bath.ac.uk
Mon Oct 20 13:36:34 BST 2014
Ah, that did the trick. Thank you!
Lizz
On 17/10/2014 17:01, sf2 wrote:
>
> Also that:
>
> $eprint->set_value( 'creators', \@newcreators);
>
> getting/setting values is always done by reference:
>
> my $array_ref = \@array;
>
> my $hash_ref = \%hash;
>
> etc.
>
> Seb
>
> On 17.10.2014 17:06, Lizz Jennings wrote:
>
>> Thanks Seb. I think it's probably too late on a Friday evening for
>> this - I see what you're saying, but can't seem to make it work...
>>
>> I'll try again on Monday and see how I get on.
>>
>> Lizz
>>
>> On 17/10/2014 16:37, sf2 wrote:
>>>
>>> I meant:
>>>
>>> my @creators = @{ $eprint->value( 'creators' ) || [] };
>>>
>>> foreach my $creator (@creators)
>>>
>>> ...
>>>
>>> Seb
>>>
>>> On 17.10.2014 16:31, sf2 wrote:
>>>
>>> Hola Lizz,
>>>
>>> I would do something like:
>>>
>>> my $creators = @{ $eprint->value( 'creators' ) || [] };
>>>
>>> ...
>>>
>>> push @newcreators, { name => ... , etc };
>>>
>>> ...
>>>
>>> in your example you push an array-ref onto the array rather than
>>> pushing a single record/row:
>>>
>>> push @foo, [ { ... } ] vs push @foo, { ... }
>>>
>>> Seb
>>>
>>> On 17.10.2014 16:33, Lizz Jennings wrote:
>>>
>>> Hi all,
>>>
>>> I'm getting in a bit of a tangle.
>>>
>>> I'd like to be able to add a function to eprint_fields_automatic for the
>>> creators field to generate affiliation information based on email
>>> addresses (where it's obvious e.g. academic institutions). I've hit a
>>> stumbling block immediately - I can't seem to get this to work without
>>> overwriting the whole thing with a single row (I've managed several
>>> variations on this particular theme).
>>>
>>> This currently works to overwrite the whole list with the first creator
>>> and does add in or change the affiliation.
>>>
>>> if ( $type eq "data_collection" ) {
>>> my $creators = $eprint->get_value( "creators" );
>>> my @newcreators;
>>> foreach my $creator (@$creators) {
>>> push @newcreators, [{ name => $creator->{name}, id =>
>>> $creator->{id}, orcid => $creator->{orcid}, affiliation => "bibble",
>>> contact => $creator->{contact} }];
>>> }
>>> $eprint->set_value( "creators", @newcreators );
>>>
>>> }
>>>
>>> Any ideas on how to do this properly would be much appreciated.
>>>
>>> Lizz
>>>
>>>
>>> *** Options:http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>> *** Archive:http://www.eprints.org/tech.php/
>>> *** EPrints community wiki:http://wiki.eprints.org/
>>> *** EPrints developers Forum:http://forum.eprints.org/
>>>
>>>
>>>
>>> *** Options:http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>>> *** Archive:http://www.eprints.org/tech.php/
>>> *** EPrints community wiki:http://wiki.eprints.org/
>>> *** EPrints developers Forum:http://forum.eprints.org/
>>
>> --
>> Lizz Jennings BA MSc ACLIP MCLIP (Revalidated 2014)
>> Technical Data Officer
>> The Library 4.10, University of Bath, Bath, BA2 7AY UK
>> Ext. 3570 (External 01225 383570)
>> E.Jennings at bath.ac.uk
>>
>> *** Options:http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
>> *** Archive:http://www.eprints.org/tech.php/
>> *** EPrints community wiki:http://wiki.eprints.org/
>> *** EPrints developers Forum:http://forum.eprints.org/
>
>
>
> *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
> *** Archive: http://www.eprints.org/tech.php/
> *** EPrints community wiki: http://wiki.eprints.org/
> *** EPrints developers Forum: http://forum.eprints.org/
--
Lizz Jennings BA MSc ACLIP MCLIP (Revalidated 2014)
Technical Data Officer
The Library 4.10, University of Bath, Bath, BA2 7AY UK
Ext. 3570 (External 01225 383570)
E.Jennings at bath.ac.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ecs.soton.ac.uk/pipermail/eprints-tech/attachments/20141020/ef38e261/attachment.html
More information about the Eprints-tech
mailing list