Installare un'editor WYSIWYG su Drupal (CKeditor)

Uno dei problemi classici che si trovano ad affrontare prima o poi quasi tutti i manutentori dei siti Drupal è l'installazione del WYSIWYG.

Se abbiniamo il fatto che magari si è nuovi nello studio di questo CMS alla poca dimestichezza con l'inglese, il primo impatto potrebbe essere ostico.

Innanzitutto chiariamo, che cos'è un WYSIWYG?

Wikipedia ci aiuta: WYSIWYG è l'acronimo che sta per l'inglese What You See Is What You Get ("quello che vedi è quello che è" o "ottieni quanto vedi").

Nel nostro caso è un editor HTML incorporato nelle pagine web che permette di modificare le pagine web non dal codice, bensì come da un normale word processor.

Oggi affrontiamo l'installazione di CKeditor.

Installazione sorgenti

  • Da drupal.org possiamo scaricare il modulo: http://drupal.org/project/ckeditor (Nota: non ci stiamo rifererendo al progetto Wysiwyg).
  • La cartella Ckeditor che troviamo nello zip la decomprimiamo e la spostiamo dentro sites/all/modules .
  • Dal sito http://ckeditor.com/download scarichiamo il pacchetto con le librerie ckeditor.
  • Lo scompattiamo e cancelliamo al suo interno le cartelle "_samples" e "_source"
  • Ora possiamo spostare il contenuto della cartella dentro sites/all/modules/ckeditor/ckeditor oppure sites/all/libraries/ckeditor, personalmente consiglio la seconda opzione.
  • Ora possiamo abilitare il modulo in tuosito/admin/build/modules

Permessi e Configurazione

  • Abilitiamo i permessi a seconda delle nostre esigenze, in questo caso ho dato l'accesso per vedere l'editor agli utenti autenticati

  • Raggiungendo il link tuosito/admin/settings/ckeditor è possibile modificare le impostazioni di ckeditor:

  • Personalmente consiglio di settare nella pagina di impostazioni dei filtri (tuosito/admin/settings/filters) il "Full Html" come formato predefinito, almeno per vedere l'installazione conclusa correttamente.

NOTA: Se non siamo sicuri delle persone che andranno ad utilizzare l'intefaccia Wysiwyg, potrebbe non essere consigliabile abilitare come predefinito il filtro "Full HTML", ma creare uno ad hoc, nel quale mettiamo i singoli tag HTML che vogliamo vengano usati. A questo scopo si potrebbero sfruttare i moduli già creati a tale scopo:

 - WYSIWYG Filter - facile da installare ( http://drupal.org/project/wysiwyg_filter )
 - HTML Purifier - più popolare, alcuni ne lamentano la lentezza ( http://drupal.org/project/htmlpurifier )
 - htmLawed - alternativa meno popolare ( http://drupal.org/project/htmLawed )

  • Gli autori del modulo consigliano di disabilitare l'opzione "Convertitore a capo (line break)" nelle impostazioni del filtro scelto (in questo caso Full Html)
  • Se avete un tema particolare consiglio di utilizzare quello predefinito di CKeditor per evitare che la textbox risulti incomprensibile. Le impostazioni si trovano sotto ogni profilo:

  • A seconda del fatto che abbiamo messo nelle impostazioni generali se vogliamo includere o escludere gli elementi, potremmo avere alcuni punti del nostro sito in cui ckeditor non si visualizza e si dovrebbe visualizzare o viceversa, a questo punto ci viene in aiuto la scritta sotto ogni textbox, riporto un esempio:
CKEditor: the ID for excluding or including this element is blog@node/14/edit.edit-body.

Se si clicca sul link "excluding or including" è possibile aggiungere l'elemento preciso o tutti gli elementi dello stesso tipo, per esempio cosi si permette a tutti i nodi di tipo blog, in modalità editing di visualizzare ckeditor:

blog@node/*/edit.edit-body

Le opzioni di inclusione ed esclusione possono essere globali e per ogni profilo che abbiamo scelto. Inizialmente per prendere dimestichezza con questo editor e la sua configurazione consiglio di utilizzare quello globale riportato nel link sotto ogni textbox.

Risoluzione Problemi

  • Se cambia il filtro di default, tutti i contenuti preesistenti rimarranno con il filtro impostato precedentemente. Quindi è necessario controllare il filtro impostato sotto la voce Body del contenuto che non visualizziamo correttamente. ( Aggiornato il 31/08/2011, grazie al contributo di paolosil )

Commenti