In questa pagina presentiamo alcuni "Tips and Tricks", ovvero suggerimenti e trucchi per OpenCms. Ci auguriamo che possano esservi utili!
Quando in un sito web si vuole visualizzare una lista di contenuti, un requisito piuttosto frequente è che si voglia visualizzare il dettaglio del contenuto stesso, che comprende maggiori informazioni rispetto a quante presentate nella lista. Per esempio da una lista di articoli che mostra il titolo, la data e l’autore, cliccando sull’articolo si atterra su una pagina che presenta tutto il contenuto testuale dell’articolo.
Ma come fare a riconoscere programmaticamente che una pagina è una pagina di dettaglio?
È sufficiente usare la classe CmsJspStandardContextBean ed uno dei suoi metodi “isDetailRequest”, come nel seguente esempio:
CmsJspStandardContextBean contextBean = CmsJspStandardContextBean.getInstance( request );
if (contextBean.isDetailRequest() ) {
some_action;
}
else{
other_action;
}
In quale occasione può essere utile tale metodo? Per esempio, se la stessa pagina presenta sia la lista che un contenuto di dettaglio, OpenCms non considera la pagina di atterraggio come una pagina di dettaglio. In tal caso posso voler forzare la visualizzazione di un dato contenuto tramite l’utilizzo del metodo sopra evidenziato.
OpenCms utilizza il il widget “HtmlWidget” per gestire l'editor dei contenuti in HTML. L'editor è basato sull'utilizzo del plugin TinyMCE.
Nel caso in cui si utilizzi il tag <i>, tale tag viene sostituito in automatico con il tag <em>, mentre il tag <b> viene sostituito con il tag <strong>.
In particolare per il tag <i> il comportamento è fastidioso perché viene utilizzato in Bootstrap per la visualizzazione delle icone.
Comunque si può ovviare modificando opportunamente il file “resources/editors/tinymce/jscripts/tinymce/tinymce.min.js”, che è un file che viene creato sul file system reale all'atto dell'installazione di OpenCms, cercando all'interno del file la stringa em/i ed eliminandola.
Il “trucco” è un po' sporco (la soluzione ideale sarebbe quella di generare un nuovo modulo personalizzato, con alcune modifiche di configurazione), ma efficace.
Se sono presenti dei font con estensioni particolari, per esempio ttf, eot, woff, tutto funziona correttamente in ambiente offline, ma per la corretta visualizzazione online occorre modificare i file di configurazione di OpenCms.
Il primo file di configurazione da modificare è opencms-vfs.xml, per aggiungere i mimetype necessari, per esempio quelli di tipo font-woff
<mimetypes>
<mimetype extension=".ez" type="application/andrew-inset" />
...
<!-- New mimetype -->
<mimetype type="application/font-woff" extension=".woff"/>
<!-- end New mimetype -->
</mimetypes>
L'altro file da modificare è opencms-importexport.xml, come nel seguente esempio:
<defaultsuffixes>
<suffix key=".jpg" />
...
<!-- New suffix -->
<suffix key=".woff"/>
<!-- end New suffix -->
</defaultsuffixes>
Perchè le modifiche abbiano effetto occorre riavviare l'application server (di solito Tomcat).