due chiacchiere

Personalizzare TinyMCE

Approfittando di un po’ di calma, mi sono messo ad aggiornare la versione di WordPress su cui gira questo sito, essendo uscita già da un po’ la 2.0.3, che corregge alcuni “peccati veniali” del sistema. Ma ne ho approfittato per mettere mano all’editor visuale integrato, TinyMCE, per risolvere un problema che avevo. In breve, volendo rispettare i requisiti per l’accessibilità, c’erano un paio di cose che ogni volta dovevo aggiungere “a mano” nel sorgente HTML della pagina.

Allora mi sono messo a cercare sui forum del settore, ma con scarsi risultati. A quanto pare tutti lo usano, ma pochi hanno aperto il cofano per vedere cosa c’è sotto. Quindi mi sono rimboccato le maniche, e con chiave inglese e martello (o meglio, editor di testo e Google) ho iniziato a lavorarci personalmente. Ora che sono riuscito ad ottenere qualche risultato (ma non ancora quello che desideravo), ho deciso di condividerlo con te.

Prima di tutto i problemi:

  1. assegnare una dimensione (attributi width ed height) alle immagini inserite nel contenuto, direttamente dalla finestra di dialogo
  2. assegnare una classe ai collegamenti, per distinguere nel mio caso specifico, quelli interni da quelli esterni (che sono evidenziati con una piccola immagine a sinistra)
  3. fargli digerire l’attributo xml:lang, che in WordPress di default non è previsto tra gli attributi validi
  4. avere un pulsante che faccia apparire una finestra di dialogo per descrivere gli acronimi
  5. poter dare ai marcatori per grassetto, corsivo e barrato, la proprietà xml:lang="en", visto che nella maggioranza dei casi, quando su questo sito una parola è in corsivo, vuol dire che non è in italiano, e allora va marcata opportunamente
  6. attivare il salvataggio automatico, che fa tanto Gmail eh eh

Sono riuscito a risolvere i primi due abbastanza facilmente, a dire la verità. Se non altro perché sono opzioni che TinyMCE già prevede, ma che gli sviluppatori che lo hanno integrato in WordPress, hanno disattivato. Probabilmente per non incasinare la vita ai redattori meno smaliziati. Così in pratica mi è bastato andare nella cartella /wp-includes/js/tinymce/themes/advanced e rimuovere il commento dalle parti di codice relative.

Il terzo punto si è rivelato un po’ più “rognoso”, perché quei furbastri di sviluppatori di WordPress hanno “nascosto” il posto dove sono definiti gli attributi validi per marcare le parole degli articoli. Così io mi ostinavo a modificare quelli definiti nel file /wp-includes/js/tinymce/tiny_mce.js ma non vedevo alcun miglioramento. Dopo aver trovato che essi erano definiti in /wp-includes/js/tinymce/tiny_mce_gzip.php (evviva la ricerca integrata nel sistema operativo), comunque le cose non andavano meglio.

Il carattere “due punti” pare infatti essere riservato nella sintassi di TinyMCE per rendere il valore di un attributo obbligatorio e costante al valore inserito. Quindi la definizione xml:lang tra gli attributi validi, viene letta: “xml è un attributo valido, e deve avere per forza valore lang” . Questa non ci voleva, ho pensato io. Allora ho spulciato il codice dell’editor visuale, fino a trovare il punto in cui lui interpreta il “due punti”, e l’ho sostituito con “due volte due punti” (ovvero :: ), liberando di fatto l’uso del “due punti” come parte del nome di un attributo. Ho anche segnalato la cosa agli sviluppatori.

Per brevità non inserisco qui tutte le modifiche, ma se vuoi qualche dritta scrivimi pure o lascia un commento. Rispetto agli altri punti, non ho ancora trovato la strada giusta, sebbene il “quasi” successo di alcune prove, mi fa ben sperare su un’imminente soluzione al problema. Più che altro, il fattore chiave è il tempo, sob.

Riferimenti

  • la mia segnalazione sul forum di TinyMCE

Lascia un commento

Torna in cima alla pagina