Purtroppo ci sono ancora siti che utilizzano Joomla 1.5.x e come ben sapete ormai questa versione non ha più il supporto. L’altro giorno dovendo sostituire l’editor dal JCE al JCKEditor mi sono imbattuto in uno strano errore. In pratica Joomla quando crea un nuovo articolo, controlla se il titolo, categoria e corpo dell’articolo sono stati inserti. Proprio quest’ultimo campo dava dei problemi con il plugin JCKEditor.
Tutte le volte che si creava un nuovo articolo e per “sbaglio” si salvava senza aver scritto il corpo dell’articolo, Joomla se ne usciva con un bel ERROR 500. Normalmente, senza il plugin JCKEditor, appariva un popup che ci avvertiva del mancato testo al corpo dell’articolo. Per risolvere questo problemino e far apparire il popup anche con il JCKEditor ho modificato il codice in due file: administrator/components/com_content/admin.content.html.php e components/com_content/views/article/tmpl/form.php.
1) Dentro il file “administrator/components/com_content/admin.content.html.php” cercate questo codice:
} else if (text == ""){
alert( "<?php echo JText::_( 'Article must have some text', true ); ?>" );
e sostituitelo con il seguente:
} else if (typeof(text) == "undefined" || text == ""){
alert( "<?php echo JText::_( 'Article must have some text', true ); ?>" );
2) Dentro il file “components/com_content/views/article/tmpl/form.php” cercate questo codice:
} else if (text == '') {
return alert ( "<?php echo JText::_( 'Article must have some text', true ); ?>");
e sostituitelo con il seguente:
} else if (typeof(text) == 'undefined' || text == '') {
return alert ( "<?php echo JText::_( 'Article must have some text', true ); ?>");
Il controllo viene fatto attraverso un JavaScript che è all’interno di questi due file PHP. Di default controlla se la variabile text è vuota e se lo è fa visualizzare il famoso popup. Purtroppo con JCKEditor la variabile text non risulta vuota ma undefined. Quindi è come se la variabile non è definita e quindi non è ne vuota, ne nulla, ne 0, insomma è di tipo undefined.
La forzatura che ho messo io è quella di controllare se la variabile text è undefined o vuota. Se una delle due risulta vera allora Joomla farà visualizzare il popup.
Ps.: tanto questi siti saranno migrati molto presto,spero, a Joomla 2.5.x o WordPress
.
Dev Null







