Mi sono trovato a dover aggiungere il campo “Codice Fiscale” sul nostro ePrints. Dopo vari smazzamenti, ecco un breve tutorial che descive come fare.
Le modifiche necessarie saranno esclusivamente sui file dell’istanza di ePrints e non sui file di sistema. Si inizia con il file {istanza}/cfg/cfg.d/user_fields.pl aggiungendo le righe necessarie (in grassetto quelle aggiunte):
$c->{fields}->{user} = [
{
‘name’ => ‘name’,
‘type’ => ‘name’,
‘render_order’ => ‘gf’,
},{
‘name’ => ‘cf’,
‘type’ => ‘text’,
},{
‘name’ => ‘dept’,
‘type’ => ‘text’,
},
poi si procede all’aggiornamento del database con il comando bin/epadmin update_database_structure {istanza} che vi comunicherà, a fine esecuzione, l’aggiunta del campo cf nella tavola users. A questo punto andiamo ad aggiungere il campo di immissione nella pagina dell’account dal file {istanza}/cfg/workflows/user/default.xml:
<component type=”Field::Multi”>
<title><epc:phrase ref=”user_section_personal” /></title>
<field ref=”name” required=”yes” />
<field ref=”cf”/>
<field ref=”dept”/>
<field ref=”org”/>
<field ref=”address”/>
<field ref=”country”/>
<field ref=”url”/>
</component>
Nel caso desideriate rendere obbligatorio tale campo, basta aggiungere l’attributo required=”yes” al relativo campo. A questo punto i passi necessari sono stati fatti ma, magari, avete la necessità di poter ricercare un utente anche attraverso il suo Codice Fiscale. Nel file {istanza}/cfg/cfg.d/user_search.pl aggiungete:
$c->{search}->{user} =
{
search_fields => [
{ meta_fields => [ “name”, ] },
{ meta_fields => [ “username”, ] },
{ meta_fields => [ “userid”, ] },
{ meta_fields => [ “cf”, ] },
{ meta_fields => [ “dept”,”org” ] },
{ meta_fields => [ “address”,”country”, ] },
{ meta_fields => [ “usertype”, ] },
{ meta_fields => [ “email” ] },
],
In più, se volete visualizzare il Codice Fiscale nella pagina dell’utente (quella visibile pubblicamente), potete farlo attraverso il file {istanza}/cfg/cfg.d/user_render.pl:
$p = $session->make_element( “p” );
$p->appendChild( $user->render_description() );
# Address, Starting with dept. and organisation…
if( $user->is_set( “cf” ) )
{
$p->appendChild( $session->make_element( “br” ) );
$p->appendChild( $user->render_value( “cf” ) );
}
if( $user->is_set( “dept” ) )
{
$p->appendChild( $session->make_element( “br” ) );
$p->appendChild( $user->render_value( “dept” ) );
}
I Vostri feedback sono benvenuti !