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]]
}}
Funzioni
Gruppo
Record in ingresso:
a, b, c
1, 2, 3
Comando:
{{^Group(,|item|/record/primo|/record/secondo):[[secondo]]}}
Risultato:
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]]
-
{{ForEach(/record/item:
- [[nome]] }}
Risultato:
Una bella giornata
- uno due
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))::€ [[/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
