<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">You need square brackets around the 0, not curly ones (you're accessing an array, not a hash).<div class=""><br class=""><div class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">--</div><div class="">Adam Field</div><div class="">Business Relationship Manager and Community Lead<br class="">EPrints Services</div></div>

</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On 2 Jul 2015, at 11:52, George Mamalakis &lt;<a href="mailto:mamalos@eng.auth.gr" class="">mamalos@eng.auth.gr</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">Hi Adam,<br class=""><br class="">I faced a problem when I performed the changes you suggested, <br class="">specifically with this line:<br class=""><br class="">${$$vals[0]}{'text'} becomes $vals-&gt;[0]-&gt;{text}<br class=""><br class="">After I changed this line, the program started to crash (server error). <br class="">When debugging it (by using a custom script that prints the 'title''s <br class="">value), when printing, for one of my records I received a:<br class=""><br class="">Not a HASH reference at (eval 60) line 104.<br class=""><br class="">error. Line 104 was the line containing:<br class=""><br class="">$title = $vals-&gt;{0}-&gt;{'text'};<br class=""><br class="">Trying to see why this was happening, I realised that the specific <br class="">record was missing the lang value (where el should have been present). <br class="">Meaning:<br class=""><br class="">Previous value: $VAR1 = [<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'text' =&gt; 'The English title',<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'lang' =&gt; 'en'<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'lang' =&gt; '',<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'text' =&gt; "\x{39f} <br class="">\x{395}\x{3bb}\x{3bb}\x{3b7}\x{3bd}\x{3b9}\x{3ba}\x{3cc}\x{3c2} <br class="">\x{3c4}\x{3af}\x{3c4}\x{3bb}\x{3bf}\x{3c2}"<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;];<br class=""><br class="">How come my previous code was handling it without a problem whereas the <br class="">one you proposed weren't? As I said I'm not well acquainted with perl, <br class="">so I'm not even sure how to debug this any further. And, to be honest, <br class="">since missing values will definitely be a case for my repository, I <br class="">cannot adopt your suggestion once it breaks; but I assume that there's <br class="">an easy work-around for this.<br class=""><br class="">Thanks again!<br class=""><br class="">On 01/07/2015 05:14 μμ, Field A.N. wrote:<br class=""><blockquote type="cite" class="">Hi George<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>I wouldn't worry about performance unless you're seeing specific problems. &nbsp;However, you can get it from $repository-&gt;id() I believe. &nbsp;Don't assume there's be a database lookup, as its<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>I would also recommend the following changes in syntax for readability:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>%$v1{'lang'} becomes $v1-&gt;{lang}<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>%$v1{'text'} becomes $v1-&gt;{text}<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>${$$vals[0]}{'text'} becomes $vals-&gt;[0]-&gt;{text}<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Best Wishes<br class=""><br class="">--<br class="">Adam Field<br class="">Business Relationship Manager and Community Lead<br class="">EPrints Services<br class="">+44 (0)23 8059 8814<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On 1 Jul 2015, at 11:34, George Mamalakis wrote:<br class=""><br class=""><blockquote type="cite" class="">Cheers Adam,<br class=""><br class="">It worked like a charm! Now please allow me to asking you one more<br class="">thing: I changed my title field to contain code that looks for my<br class="">repository_id through the $eprint variable (which is my method's<br class="">parameter), which means that the system will have to make an additional<br class="">database call each time my field is accessed for each object. There's no<br class="">easier method of having access to it, I suppose? (eg. directly, like I<br class="">have access to the configuration via $c).<br class=""><br class="">PS. My new title-field code is as follows:<br class=""><br class="">{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;name =&gt; 'title',<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;type =&gt; 'virtualwithvalue',<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;virtual =&gt; 1,<br class=""><br class=""> &nbsp;&nbsp;&nbsp;&nbsp;get_value =&gt; sub<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my ($eprint) = @_;<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($eprint-&gt;is_set('ml_title'))<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $repo = $eprint-&gt;repository;<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $lang = $repo-&gt;get_langid;<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# if cannot find a user language setting, I'm taking the<br class="">default one<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!$lang)<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$lang = $c-&gt;{defaultlanguage};<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $vals = $eprint-&gt;get_value('ml_title');<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $title = '';<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# set the default lang's text as title<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach my $v1 (@{$vals})<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (%$v1{'lang'} eq $lang)<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$title = %$v1{'text'};<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# if I couldn't find a title in the user's language, get<br class="">the first object's text as title<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($title eq '')<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$title = ${$$vals[0]}{'text'} ;<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $title;<br class=""><br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return undef;<br class=""> &nbsp;&nbsp;&nbsp;&nbsp;}<br class="">},<br class=""><br class=""><br class=""><br class="">On 01/07/2015 12:30 μμ, Field A.N. wrote:<br class=""><blockquote type="cite" class="">It should be:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>$repository-&gt;get_lang(), which will return an EPrints::Language object, or $repository-&gt;get_langid, which will return the ID of the language.<br class=""><br class="">--<br class="">Adam Field<br class="">Business Relationship Manager and Community Lead<br class="">EPrints Services<br class="">+44 (0)23 8059 8814<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On 30 Jun 2015, at 10:29, George Mamalakis wrote:<br class=""><br class=""><blockquote type="cite" class="">Hi all,<br class=""><br class="">I am testing the multilang field (with virtual fields for title and<br class="">abstract) and I am trying to make my virtual field return a different<br class="">title (or abstract) based on what the user's language choice is. How can<br class="">I have access to that variable on my perl configuration file? (I've<br class="">tested the default language and works as expected, but I don't find it<br class="">usable.)<br class=""><br class="">Thanks all in advance.<br class=""><br class="">-- <br class="">George Mamalakis<br class=""><br class="">IT and Security Officer,<br class="">Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),<br class="">PhD (Aristotle Univ. of Thessaloniki),<br class="">MSc (Imperial College of London)<br class=""><br class="">School of Electrical and Computer Engineering<br class="">Aristotle University of Thessaloniki<br class=""><br class="">phone number : +30 (2310) 994379<br class=""><br class=""><br class="">*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech" class="">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br class="">*** Archive: <a href="http://www.eprints.org/tech.php/" class="">http://www.eprints.org/tech.php/</a><br class="">*** EPrints community wiki: <a href="http://wiki.eprints.org/" class="">http://wiki.eprints.org/</a><br class="">*** EPrints developers Forum: <a href="http://forum.eprints.org/" class="">http://forum.eprints.org/</a><br class=""></blockquote>*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech" class="">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br class="">*** Archive: <a href="http://www.eprints.org/tech.php/" class="">http://www.eprints.org/tech.php/</a><br class="">*** EPrints community wiki: <a href="http://wiki.eprints.org/" class="">http://wiki.eprints.org/</a><br class="">*** EPrints developers Forum: <a href="http://forum.eprints.org/" class="">http://forum.eprints.org/</a><br class=""></blockquote><br class="">-- <br class="">George Mamalakis<br class=""><br class="">IT and Security Officer,<br class="">Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),<br class="">PhD (Aristotle Univ. of Thessaloniki),<br class="">MSc (Imperial College of London)<br class=""><br class="">School of Electrical and Computer Engineering<br class="">Aristotle University of Thessaloniki<br class=""><br class="">phone number : +30 (2310) 994379<br class=""><br class=""><br class=""><br class="">*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech" class="">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br class="">*** Archive: <a href="http://www.eprints.org/tech.php/" class="">http://www.eprints.org/tech.php/</a><br class="">*** EPrints community wiki: <a href="http://wiki.eprints.org/" class="">http://wiki.eprints.org/</a><br class="">*** EPrints developers Forum: <a href="http://forum.eprints.org/" class="">http://forum.eprints.org/</a><br class=""></blockquote><br class="">*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech" class="">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br class="">*** Archive: <a href="http://www.eprints.org/tech.php/" class="">http://www.eprints.org/tech.php/</a><br class="">*** EPrints community wiki: <a href="http://wiki.eprints.org/" class="">http://wiki.eprints.org/</a><br class="">*** EPrints developers Forum: <a href="http://forum.eprints.org/" class="">http://forum.eprints.org/</a><br class=""><br class=""></blockquote><br class=""><br class="">-- <br class="">George Mamalakis<br class=""><br class="">IT and Security Officer,<br class="">Electrical and Computer Engineer (Aristotle Univ. of Thessaloniki),<br class="">PhD (Aristotle Univ. of Thessaloniki),<br class="">MSc (Imperial College of London)<br class=""><br class="">School of Electrical and Computer Engineering<br class="">Aristotle University of Thessaloniki<br class=""><br class="">phone number : +30 (2310) 994379<br class=""><br class=""><br class=""><br class="">*** Options: <a href="http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech" class="">http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech</a><br class="">*** Archive: <a href="http://www.eprints.org/tech.php/" class="">http://www.eprints.org/tech.php/</a><br class="">*** EPrints community wiki: <a href="http://wiki.eprints.org/" class="">http://wiki.eprints.org/</a><br class="">*** EPrints developers Forum: <a href="http://forum.eprints.org/" class="">http://forum.eprints.org/</a><br class=""></div></blockquote></div><br class=""></div></div></body></html>