Quando si usa una colonna di testo su SharePoint e si abilita l’editor Rich Text si ha lo spiacevole problema che il rendering funziona solo su IE. Questo è dovuto all’utilizzo di un ActiveX che ovviamente funziona solo sui browser di mamma Microsoft.
Nell’ultimo progetto che sto portando avanti invece gli utenti utilizzano indifferentemente Safari, Firefox e IE (lo so è un casino…). Come fare? Occorre sostituire l’editor originale, con uno dei tanti web editor che si trovano in giro.
Facendo una serie di ricerche e una serie di test quelli che mi sento di consigliare sono: RadEditor Lite, FCKEditor e TinyMCE. Del RadEditor esiste anche una versione a pagamento che mette a disposizione molte caratteristiche aggiuntive, che però possono essere trovate nella stragrande maggioranza dei casi negli altri due editor. Proprio per questo nel mio progetto sto valutando gli ultimi due.
L’integrazione degli editor su SharePoint può essere fatta in vario modo: in questo post viene descritto un metodo per integrare l’FCKEditor andando a modificare il file non_ie.js di SharePoint. Nessun problema, funziona tutto correttamente, ma comunque si va a modificare direttamente un file di SharePoint e non è mai una bella cosa. Inoltre il metodo suggerito permette di sostituire l’editor solo per i browser non-IE, mentre secondo me sarebbe molto più comoda una soluzione globale che uniformi l’editor utilizzato su tutti i browser.
In questo secondo post, viene mostrata una soluzione molto più elegante ed efficace. In questo caso viene integrato il TinyMCE, ma l’approccio può essere utilizzato anche per altri editor. Sostanzialmente viene creata una feature (codice sorgente in fondo), che va ad aggiungere un rendering template custom per i campi RichTextField.
Abilitando la feature (creata con scope di Web Application), l’effetto finale è quello di avere il nuovo editor disponibile su tutti i browser e su tutti i campi di tipo RichTextField.
Nell’esempio vengono create due toolbar con controlli abbastanza standard, ma se si guarda nella documentazione ufficiale del TinyMCE si potrà notare che ci sono molti altri elementi da aggiungere nelle varie toolbar, che sono personalizzabili in tutto e per tutto.