EPrints Technical Mailing List Archive
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):