Componente catalogo

La componente catalogo, dopo aver caricato il file dei dati in uno dei formati predefiniti, richiede la configurazione del modello per la loro presentazione. Il modello deve essere creato con l'editor di testi analogo a quello normalmente utilizzato per inserire normali contenuti, ma all'interno si possono indicare quali campi visualizzare e come devono essere visualizzati.

Regole principali

Nel resultato di una ricerca il record è rappresentato internamente a JOpac2 in formato XML e ciascuno è inserito in un nodo

<record>
....
</record>

all'interno del nodo record ci saranno i nodi ISBD, serie, partof, ...

Le regole di sostituzione prevedono che:

  • il nome del campo racchiuso tra [[.....]] viene sostituito dal suo contenuto
  • l'indicazione di un contesto con la sintassi {{contesto:testo [[nomecampo]]}} fa si che la parte dopo i due punti venga visualizzata solo se esiste il nodo indicato come contesto prima dei due punti
  • i contesti possono essere ricorsivi e indicando un percorso assoluto si può far riferimento a elementi "più esterni"

 

Esempio:

[[/record/ISBD]]
{{/record/serie:Collana:
      [[isbdserie]]
}}{{/record/haspart:Contiene: {{/record/haspart/record:
      [[isbd]]
}}}}{{/record/partof:Fa parte di: {{/record/partof/record:
      [[isbd]]
}}}}{{/record/classifications:Classificazioni: [[classification]]
}}{{/record/subjects: Soggetti: [[subject]]
}}

 

Caricamento catalogo

 

Funzioni

Gruppo

Record in ingresso:


    a, b, c
    1, 2, 3

Comando:

{{^Group(,|item|/record/primo|/record/secondo):[[secondo]]}}

Risultato:

123

 

Limite

Record in ingresso:


    6142
    Il *pensiero americano contemporaneo / direzione dell'opera Ferruccio Rossi-Landi. - Milano : Edizioni di Comunita. - 2 v. ; 25 cm. - In testa al front.: Centro di studi metodologici di Torino

Comando:

{{^Limit(/record/ISBD|30| Continua):[[.]]}}

Risultato:

Il *pensiero americano Continua

 

For each

La componente catalogo, quando analizza i risultati, ha la possibilità di "schiacciare" record consecutivi se determinati campi (selezionabili) sono uguali. In questo caso il record risultante avrà i campi utilizzati per il controllo in comune e tutti gli altri raggruppati in un nodo per ciascun record accorpato.

Record in ingresso


   Una bella giornata
  
       uno
       http://esempio.mio/uno
  
  
       due
       http://esempio.mio/due
  

Comando:

[[/record/titolo]]

 

Risultato:

Una bella giornata

If

If, prende in arg[0] un'espressione  booleana in java, ed esegue il ramo else solo se è vera.
Si basa su Apache Common jexl2.1.1
Esempio:
 
{{^If((("[[/record/prezzo]]").length()!=0)&&((_NumberFormatItalian.parse("[[/record/prezzo]]")).doubleValue()!=0))::&#8364; [[/record/prezzo]]}}
 
ATTENZIONE: il valutatore non istanzia variabili, quindi non e' possibile usare i metodi statici delle classi. Per ovviare a questo
nel contesto del valutatore sono state caricate delle variabili predefinite:
 
 
                jctx.set("_NumberFormatItalian", NumberFormat.getInstance(Locale.ITALIAN));
                jctx.set("_Integer", new Integer(0));
                jctx.set("_String", new String(""));
                jctx.set("_Double", new Double(0));

 

Conoscere il formato xml del record

Nel testo del template inserire:

 

[[*RAW*]]

 

Parametri

Ricerca:

query=ANY=a

Numero record per pagina: 

rxp=25

Ordinamento:

orderby=TIT

descendant=true

Numero di pagina:

page=1

Visualizzazione:

display=iso, xml, raw

Catalogo:

catalog=ej

Esempio:

/components/catalogSearch/viewxml?query=ANY=or&catalog=ej&orderby=Titolo&descendant=true&display=iso