Joomla.it Forum

Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => : Davide84x 19 Nov 2008, 12:37:05

: [Problema] - Errore visualizzazione caratteri speciali nel title e in latestnews
: Davide84x 19 Nov 2008, 12:37:05
Salve ragazzi,
ho un problema nel sito http://www.travelandeating.com (http://www.travelandeating.com) fatto con Joomla 1.5.7

Ho un form per l'inserimento di articoli che gestisco convertendo i testi con la funzione:
$text = htmlentities($text,ENT_QUOTES,'UTF-8');

Il fatto è che nel <title> delle pagine e nei titoli dei moduli latestnews i caratteri speciali vengono visualizzati con il loro equivalente html. Ad esempio se scrivo "l'albero" viene visualizzato "l&amp;#039;albero".
Questo problema non si presenta invece nella visualizzazione deli articoli.

Avete qualche suggerimento?
: Re: [Problema] - Codifica caratteri
: Davide84x 19 Nov 2008, 17:36:59
Devo fare una precisazione,
mi sono accorto di avere gli stessi  errori di visualizzazione anche nei metadata, che ricavo da stinghe elaborate come nel post precedente.

Nessuno di voi ha mai riscontrato problemi di questo tipo?
Non ho la più pallida idea di come si possano risolvere...

Spero di essermi spiegato ma se non sono stato chiaro chiedere pure.

Grazie,
 Davide

: Re: [Problema] - Codifica caratteri
: 56francesco 19 Nov 2008, 18:02:55
ma che versione di joomla stai usando?
: Re: [Problema] - Codifica caratteri
: Davide84x 19 Nov 2008, 18:19:16
Uso Joomla 1.5.7
: Re: [Problema] - Codifica caratteri
: Davide84x 25 Nov 2008, 00:30:55
In questi giorni sto cercando di andare un po' a fondo a questo problema che non riesco a risolvere!

Nella tabella jos_content del database tutti i caratteri speciali vengono salvati con il loro equivalente html (l'ho imposto io con htmlentities, poichè questi dati vengono presi da un mio form). Ad esempio l'apostrofo ' viene sostituito con &#_039; (ho aggiunto _ perchè se no me lo convertiva in apostrofo nel post!)

Il problema è che quando viene generato il <title> della pagina anche la & viene convertita con il codice corrispondente e pertanto quando c'è un apostrofo (o altri caratteri speciali) nel <title> della pagina viene visualizzato &amp;#039; anzichè '

Questo problema non ce l'ho invece con la description o il testo dell'articolo... e nemmeno con il titolo dell'articolo visualizzato in mezzo alla pagina.


Dettagli sulla mia configurazione:
- Joomla 1.5.7
- Nel mio database la tabella (jos_content) ha codifica utf8_general_ci, così come i suoi campi.
- Inoltre ho impostato nell'index.php del template:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Qualcuno ha idea di dove guardare nei file di joomla per risolvere il problema?

P.S:
Ho provato a modificare il file
components\com_content\views\article\view.html.php
agendo sulla riga:
$document->setTitle($title);
e cambiandola in
$document->setTitle(html_entity_decode($title));
ma rimane tutto come prima.
: Re: [Problema] - Errore visualizzazione caratteri speciali nel <title>
: Davide84x 25 Nov 2008, 02:12:42
Ragazzi ho risolto il problema in modo piuttosto "barbaro".

Il problema penso sia che, dato che applico htmlentities ad dati prima di memorizzarli nel datatabase, in alcuni casi su di essi viene riapplicata una seconda volta questa conversione nel codice di joomla, convertendo anche tutte le & dell'equivalente html dei caratteri speciali e dando origine al problema descritto sopra.

Per quanto riguarda il modulo latestnews, ho modificato il file modules\mod_latestnews\helper.php in questo modo:
In:
:
$lists[$i]->text = htmlspecialchars( $row->title );
Ho eliminato htmlspecialchars:
:
$lists[$i]->text = $row->title;

Per quanto i <title> degli articoli sono andato a modificare la function del file components\com_content\views\article\view.html.php.
Nell'originale c'è:
:

$document->setTitle($title);
che ho modificato in:
:

$document->setTitle(html_entity_decode($title,ENT_QUOTES,'UTF-8'));


Accetto volentieri eventuali critiche su questa soluzione o eventuali alternative.

Spero che quando scritto possa essere utile a chi eventualmente di trovi ad avere lo stesso mio problema.