Tech List

[index] [prev] [next] [options] [help]
See the Mailing Lists Page for how to subscribe and unsubscribe.

eprints_tech messages

Please note: this page shows emails that have been sent to the eprints_tech mailing list. Some of these may be spam emails we have failed to filter.

[EP-tech] Re: Phrases based on eprint type

From: Duncan Dickinson <d.dickinson AT qut.edu.au>
Date: Thu, 6 Nov 2008 14:00:57 +1000


Threading: [EP-tech] Phrases based on eprint type from d.dickinson AT qut.edu.au
      • This Message
             [EP-tech] Re: Phrases based on eprint type from sms67 AT cam.ac.uk
             [EP-tech] Re: Phrases based on eprint type from alfons.wittmann AT ku-eichstaett.de

http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
*** EPrints community wiki - http://wiki.eprints.org/
Hi All,

I'm afraid to say that no answers have appeared (yet)

Looking into the code, I think for contextual help text we'd need to change 
Metafield.pm

sub render_help
{
	my( $self, $session ) =  AT _;

	if( defined $self->{help_xhtml} )
	{
		return $self->{help_xhtml};
	}

	my $phrasename = $self->{confid}."_fieldhelp_".$self->{name}; 

	return $session->html_phrase( $phrasename );
}


If you can get the eprint type in this section of code, you could change it to 
be something like:


sub render_help
{
	my( $self, $session ) =  AT _;

	if( defined $self->{help_xhtml} )
	{
		return $self->{help_xhtml};
	}
	
	my $phrasename = $self->{confid}."_fieldhelp_".$self->{name}; 

	my $type_specific_phrasename = ($phrasename . "#" . ?getEprintType?;

	if (EPrints::Language->has_phrase($type_specific_phrasename) {
		return $session->html_phrase($type_specific_phrasename);
	} else {
		return $session->html_phrase( $phrasename );
	}
}

This could allow you to set the following in the phrases file:
<epp:phrase id="eprint_fieldhelp_title">This is the title of 
the item</epp:phrase>
<epp:phrase id="eprint_fieldhelp_title#book">This is the title 
of the book</epp:phrase>
<epp:phrase id="eprint_fieldhelp_title#booksection">This is the 
title of the chapter and not the book itself</epp:phrase>

There's always a default to use but you can give specific help for specific 
resource types.

My main problem is that I can't work out how to get the current eprint record's 
data - this is the eprint we're editing in the workflow. Calling $self{type} 
will give you the field type (ala Longtext) and not the eprint type (ala 
Article). I'm also unsure about getting to the Language object.

Any ideas on getting that eprint type?

Cheers,

Duncan


Ps The same would be great for field titles. For example
<epp:phrase 
id="eprint_fieldname_volume">Volume</epp:phrase>
<epp:phrase id="eprint_fieldname_volume#book">Series 
Volume</epp:phrase>
...but I just don't have the time to keep digging in the code

 Duncan Dickinson / QUT Digital Repository Technical Project Manager / Library 
Systems
 Queensland University of Technology / CRICOS: 00213J
 ph 3138 3782


-----Original Message-----
From: eprints-tech-bounces AT ecs.soton.ac.uk [mailto:eprints-tech-bounces AT 
ecs.soton.ac.uk] On Behalf Of Stephen Shorrock
Sent: Wednesday, 5 November 2008 12:28 AM
To: EPrints.org Technical List
Subject: [EP-tech] Re: Phrases based on eprint type

http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
*** EPrints community wiki - http://wiki.eprints.org/
Hi Duncan,

I was wondering whether you found a solution for this?

If so I wondered whether you wouldn't mind sharing it.  I think that we 
would like to do the exact same thing.

TIA
Stephen

 Dickinson wrote:
> *** 
http://www.eprints.org/tech.php/id/%3CCDD4943B0C84AD4B87B7B2EB6BF47ED2B6303E0B%40QUTEXMBX01.qut.edu.au%3E
> *** EPrints community wiki - http://wiki.eprints.org/
>
> Hi Matthaeus,
>
> Thanks for responding to my query. I was trying to avoid creating another 
field as the information is basically the same (ie it is the creator of the 
item) and just try to change the wording on the screen depending on the 
resource type being described. This is along the lines of the citations where 
you can use epc conditionals to format the output based on resource type.
>
> Another example would be to display one help string for Journal titles and 
another for Books. You don't want to create separate fields for each title but 
you need different display text.
>
> Cheers,
>
> Duncan
>
>  Duncan Dickinson / QUT Digital Repository Technical Project Manager / 
Library Systems
>  Queensland University of Technology / CRICOS: 00213J
>  ph 3138 3782
>
>
> -----Original Message-----
> From: owner-eprints-tech AT ecs.soton.ac.uk [mailto:owner-eprints-tech AT 
ecs.soton.ac.uk] On Behalf Of Matthäus Zylka
> Sent: Monday, 20 October 2008 9:21 PM
> To: EPrints.org Technical List
> Subject: Re: [EP-tech] Phrases based on eprint type
>
> *** 
http://www.eprints.org/tech.php/id/%3C1224501689.48fc69b9c61fc%40webmail.uni-koeln.de%3E
> *** EPrints community wiki - http://wiki.eprints.org/
>
> Zitat von Duncan Dickinson <d.dickinson AT qut.edu.au>:
>
> Hi Duncan,
>
> If you want to add a new Eprint type you have to add some lines into 
following
> files:
>
> -> /phrases/eprint_types.xml:
>
>   <epp:phrase 
id="eprint_typename_artwork">Artwork</epp:phrase>
>   <epp:phrase id="eprint_optdetails_type_artwork">An 
Artwork ;)</epp:phrase>
>
> ->/namedsets/eprint:
>
>   artwork
>
> Then you have to edit the /cfg.d/eprint_fields.pl and add:
>
>           {
>             'name' => 'artist',
>             'type' => 'compound',
>             'multiple' => 1,
>             'fields' => [
>                           {
>                             'sub_name' => 'name',
>                             'type' => 'name',
>                             'hide_honourific' => 1,
>                             'hide_lineage' => 1,
>                             'family_first' => 1,
>                           },
>                           {
>                             'sub_name' => 'id',
>                             'type' => 'text',
>                             'input_cols' => 20,
>                             'allow_null' => 1,
>                           }
>                         ],
>             'input_boxes' => 4,
>           },
>
> -> /phrases/eprint_fields.xml:
>
>     <epp:phrase 
id="eprint_fieldname_artist">Artist</epp:phrase>
>     <epp:phrase 
id="eprint_fieldname_artist_name">Artists</epp:phrase>
>     <epp:phrase 
id="eprint_fieldname_artist_id">E-Mail</epp:phrase>
>     <epp:phrase id="eprint_fieldhelp_artist">HELPHELP or 
something</epp:phrase>
>
> and the last one
>
> /workflows/eprint/default.xml:
>
>   <stage name="core">
>     <epc:choose>
> .
> .
> .
>      <epc:when test="type='artwork'">
>         <component><field ref="artist"
> input_lookup_url="{$config{rel_cgipath}}/users/lookup/name" 
/></component>
>       </epc:when>
>
> I don't know what kind of fields you really need. So here is only an 
example:
>       <epc:if test="type = 'artwork'">
>         <field ref="date"/>
>         <field ref="date_type"/>
>         <field ref="place_of_pub"/>
>         <field ref="series"/>
>         <field ref="official_url"/>
>       </epc:if>
>
> After that, run "generate_static XXX", "_views", 
"_abstracts", "epadmin
> upgrade_database_structure XXX" (I don't know if its a feature of 
eprints
> version < 3.1.0) and "epadmin reload XXX".
> If "epadmin upgrade_database_structure XXX" doesn't work, you'll 
have to add
> "artist" in your SQL Database by hand.
>
> Don't forget to restart Apache
>
> regards,
> --
> Matthaeus Zylka
> University of Cologne
> Libary for Computer Science
> and Business Computing
> Pohligstr. 1
> 50969 Cologne
>
>
>   




[index] [prev] [next] [options] [help]