Se avete, ad esempio, la necessità di aggiungere un nuovo campo (ad esempio distinguere se un brevetto è nazionale o internazionale) dovete fare alcune modifiche non proprio banali. La guida è anche sul Wiki di ePrints ed i passi sono i seguenti:

1) Aggiungete la definizione nel file cfg/cfg.d/eprint_fields.pm:

{
‘name’ => ‘patent_type’,
‘type’ => ‘set’,
‘options’ => [
'nazionale',
'internazionale',
],
‘input_style’ => ‘medium’,
},

In questo caso ho aggiunto la possibilità di definire un brevetto (patent) nazionale o internazionale.

2) Aggiungete le frasi nel relativo file di lingua cfg/lang/it/phrases/eprint_fields.xml

<epp:phrase id=”eprint_fieldname_patent_type”>Tipo brevetto</epp:phrase>
<epp:phrase id=”eprint_fieldhelp_patent_type”></epp:phrase>
<epp:phrase id=”eprint_fieldopt_patent_type_nazionale”>Nazionale</epp:phrase>
<epp:phrase id=”eprint_fieldopt_patent_type_internazionale”>Internazionale</epp:phrase>

3) Aggiungete il campo alle tabelle “eprint” :

patent_type VARCHAR(255)

e “eprint__ordervalues_it“:

patent_type TEXT

4) Adesso potete aggiungere il nuovo campo alla lista dei possibili indici per le ricerche avanzate. Editate il file cfg/cfg.d/eprint_search_advanced.pl:

search_fields => [
...
{ meta_fields => [ "patent_type" ] },

],

5) Adesso aggiungete il nuovo campo al workflow nel file cfg/workflows/eprint/default.xml:

<epc:if test=”type = ‘patent’”><component><field ref=”patent_type” required=”yes” /></component></epc:if>

6) Aggiornate ePrints e riavviate Apache:

./bin/epadmin update_database_structure ARCHIVEID
apachectl restart

il risultato sarà questo (nel wordkflow dei Brevetti, ovviamente):

screenshot106oltre ad avere anche, nella ricerca avanzata, la relativa opzione di ricerca:

screenshot107