[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EP-tech] Re: Finding selected lang from configuration



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