Postato il 27 Novembre 2012 da Paolo Predonzani

Il “Browse server” è una utile funzionalità di CKEditor per selezionare una risorsa (pagine, immagini, ecc) fra quelle disponibili sul server. Pur essendo un funzionalità prevista, l'implementazione non è contenuta in CKEditor ma è lasciata allo sviluppatore, che dovrà realizzare un front-end per presentare l'elenco delle risorse all'utente, per gestirne l'interazione e per accettare la selezione.

Tipicamente questo front-end viene implementato tramite una dialog contenente un albero di cartelle e risorse. La seguente figura mostra l'implementazione fornita da CKFinder, un prodotto integrabile con CKEditor.

Questo approccio funziona bene se il numero di cartelle e risorse è ragionevole ma, se il numero di nodi nell'albero è alto, può diventare ingestibile per l'utente.

Quando si può verificare una situazione del genere? In Portofino 4 abbiamo una situazione mista CMS/CRUD, dove alcune risorse (p.e., /just-a-page) sono semplici pagine web, mentre altre (p.e., /tickets/56, dove “56” è la chiave primaria di una tabella “tickets”) sono estratte da un database. Le risorse nel database non possono essere note a priori e potenzialmente possono essere molto numerose. Se dovessimo presentarle in un albero, ci troveremmo con centinaia o magari migliaia di nodi.

Il browser in un iframe

Nella versione 4.0.8 di Portofino, che uscirà a inizio Dicembre 2012, abbiamo implementato un approccio basato sulla semplicità: la selezione della pagina avviene navigando il sito all'interno di un iframe. Quando l'utente ha trovato la pagina desiderata è sufficiente che faccia click sul bottone Choose.

Premuto Choose la dialog di selezione si chiude e l'url della risorsa selezionata è mostrato all'interno di CKEditor.

Con questo approccio non è importante se si sta selezionando una pagina di CMS o una pagina di CRUD, o quanti nodi ci sono nell'alberatura. Nel caso di un CRUD con molti oggetti, si può utilizzare la ricerca per restringere in numero e trovare l'oggetto cercato con facilità

Vantaggi

Il vantaggio principale è che l'utente può selezionare una risorsa nello stesso modo in cui naviga e usa il sito normalmente, anche quando il numero di risorse è molto alto.

Un altro vantaggio è la sicurezza. Se una pagina è visibile secondo le normali regole di sicurezza, allora è anche selezionabile. Semplice!

Svantaggi

Bisogna citare anche alcuni svantaggi dell'approccio.

Il primo è che ogni risorsa deve essere una pagina web. Se la risorsa fosse un'immagine o un documento scaricabile bisogerebbe usare un altro approccio (e in effetti usiamo un approccio diverso per gli allegati).

Il secondo svantaggio è che navigare le pagine può essere complicato, p.e. se lo pagine sono lunghe o complesse. In questo caso un “browse server” ad albero è più semplice.

Il terzo svantaggio è che una pagina con javascript particolari può comportarsi in maniera strana all'interno dell'iframe.

Conclusioni

Questa è una preview di uno dei molti miglioramenti nell'area CMS che stiamo preparando per la release 4.0.8 di Portofino che uscirà a breve. Rimanete collegati!

 

comments powered by Disqus