EPrints Technical Mailing List Archive
See the EPrints wiki for instructions on how to join this mailing list and related information.
Message: #04425
< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First
[EP-tech] Re: Finding selected lang from configuration
- To: eprints-tech@ecs.soton.ac.uk
- Subject: [EP-tech] Re: Finding selected lang from configuration
- From: "Field A.N." <af05v@ecs.soton.ac.uk>
- Date: Wed, 1 Jul 2015 15:14:12 +0100
Hi George
I wouldn't worry about performance unless you're seeing specific problems. However, you can get it from $repository->id() I believe. Don't assume there's be a database lookup, as its
I would also recommend the following changes in syntax for readability:
%$v1{'lang'} becomes $v1->{lang}
%$v1{'text'} becomes $v1->{text}
${$$vals[0]}{'text'} becomes $vals->[0]->{text}
Best Wishes
--
Adam Field
Business Relationship Manager and Community Lead
EPrints Services
+44 (0)23 8059 8814
On 1 Jul 2015, at 11:34, George Mamalakis wrote:
> Cheers Adam,
>
> It worked like a charm! Now please allow me to asking you one more
> thing: I changed my title field to contain code that looks for my
> repository_id through the $eprint variable (which is my method's
> parameter), which means that the system will have to make an additional
> database call each time my field is accessed for each object. There's no
> easier method of having access to it, I suppose? (eg. directly, like I
> have access to the configuration via $c).
>
> PS. My new title-field code is as follows:
>
> {
> name => 'title',
> type => 'virtualwithvalue',
> virtual => 1,
>
> get_value => sub
> {
> my ($eprint) = @_;
> if ($eprint->is_set('ml_title'))
> {
> my $repo = $eprint->repository;
> my $lang = $repo->get_langid;
> # if cannot find a user language setting, I'm taking the
> default one
> if (!$lang)
> {
> $lang = $c->{defaultlanguage};
> }
> my $vals = $eprint->get_value('ml_title');
> my $title = '';
> # set the default lang's text as title
> foreach my $v1 (@{$vals})
> {
> if (%$v1{'lang'} eq $lang)
> {
> $title = %$v1{'text'};
> }
> }
> # if I couldn't find a title in the user's language, get
> the first object's text as title
> if ($title eq '')
> {
> $title = ${$$vals[0]}{'text'} ;
> }
> return $title;
>
> }
> return undef;
> }
> },
>
>
>
> On 01/07/2015 12:30 μμ, Field A.N. wrote:
>> It should be:
>>
>> $repository->get_lang(), which will return an EPrints::Language object, or $repository->get_langid, which will return the ID of the language.
>>
>> --
>> Adam Field
>> Business Relationship Manager and Community Lead
>> EPrints Services
>> +44 (0)23 8059 8814
>>
>>
>>
>>
>>
>> On 30 Jun 2015, at 10:29, George Mamalakis wrote:
>>
>>> Hi all,
>>>
>>> I am testing the multilang field (with virtual fields for title and
>>> abstract) and I am trying to make my virtual field return a different
>>> title (or abstract) based on what the user's language choice is. How can
>>> I have access to that variable on my perl configuration file? (I've
>>> tested the default language and works as expected, but I don't find it
>>> usable.)
>>>
>>> Thanks all in advance.
>>>
>>> --
>>> George Mamalakis
>>>
>>> IT and Security Officer,
>>> Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),
>>> PhD (Aristotle Univ. of Thessaloniki),
>>> MSc (Imperial College of London)
>>>
>>> School of Electrical and Computer Engineering
>>> Aristotle University of Thessaloniki
>>>
>>> phone number : +30 (2310) 994379
>>>
>>>
>>> *** 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/
>
>
> --
> George Mamalakis
>
> IT and Security Officer,
> Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),
> PhD (Aristotle Univ. of Thessaloniki),
> MSc (Imperial College of London)
>
> School of Electrical and Computer Engineering
> Aristotle University of Thessaloniki
>
> phone number : +30 (2310) 994379
>
>
>
> *** 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/
- References:
- [EP-tech] MySQL version
- From: Matthew Brady <Matthew.Brady@usq.edu.au>
- [EP-tech] Re: MySQL version
- From: George Mamalakis <mamalos@eng.auth.gr>
- [EP-tech] Re: MySQL version
- From: Ian Stuart <Ian.Stuart@ed.ac.uk>
- [EP-tech] Finding selected lang from configuration
- From: George Mamalakis <mamalos@eng.auth.gr>
- [EP-tech] Re: Finding selected lang from configuration
- From: "Field A.N." <af05v@ecs.soton.ac.uk>
- [EP-tech] Re: Finding selected lang from configuration
- From: George Mamalakis <mamalos@eng.auth.gr>
- [EP-tech] MySQL version
- Prev by Date: [EP-tech] Re: [SOLVED] Re: Shelves documentation (in response to Re: Collections package)
- Next by Date: [EP-tech] Re: Deleting an EPrints repository
- Previous by thread: [EP-tech] Re: Finding selected lang from configuration
- Next by thread: [EP-tech] Re: Finding selected lang from configuration
- Index(es):
