Back to top

Autore Topic: K2 errore UTF8  (Letto 2119 volte)

Offline Murphz

  • Global Moderator
  • Abituale
  • *****
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
K2 errore UTF8
« il: 08 Nov 2011, 22:56:56 »
Sto utilizzando la nuova versione 2.5 di k2 su J 1.7.2.
Non mi era mai capitato prima e non so proprio che fare ora  :-X  utilizzando il mod_k2_content per inserire un paio di news in ordine e inserendo l'introtext a un certo tot mi accorgo che non fa le parole accentate.


Dopo un po' di esperimenti (ho provato a convertire tutto l'introtext in utf-8 ecc ecc) scopro che, se non utilizza il wordlimit funziona tutto correttamente altrimenti visualizza ì è ò ù correttamente, il problema rimane sulla à.....sbaglio o è assurdo?
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline Murphz

  • Global Moderator
  • Abituale
  • *****
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:K2 errore UTF8
« Risposta #1 il: 08 Nov 2011, 23:28:33 »
L'errore è nel codice della funzione wordlimit richiamata dal modulo.
Non so in quanti di voi troveranno questo errore ma la soluzione è cambiare cosa lui cerca di sostituire nel testo:


Codice: [Seleziona]

function wordLimit($str, $limit = 100, $end_char = '…') {
if (trim($str) == '') return $str;


// always strip tags for text
$str = strip_tags($str);


$find = array("/\r|\n/","/\t/","/\s\s+/");
$replace = array(" "," "," ");
$str = preg_replace($find,$replace,$str);


preg_match('/\s*(?:\S*\s*){'.(int) $limit.'}/', $str, $matches);
if (strlen($matches[0]) == strlen($str))
$end_char = '';
               
return rtrim($matches[0]).$end_char;
}


Ho sostituito:


Codice: [Seleziona]
$find = array("/\r|\n/","/\t/","/\s\s+/");


con



Codice: [Seleziona]
$find = array("/\r|\n/","/\t/","/\t\s+/");


La soluzione non ha molto senso ma funziona correttamente, premetto che non mi sono mai interessato molto a questi codici, ma da quello che ho visto il \s dovrebbero essere gli spazi bianchi....se qualcuno ha una soluzione migliore mi farebbe piacere  :-\
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline chil8

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:K2 errore UTF8
« Risposta #2 il: 22 Nov 2011, 16:01:53 »
grande Murphz!!! ho appena riscontrato questo problema e spero di risolverlo nella maniera che hai adoperato...
ora, perdonami l'ignoranza  ::) ma non riesco a trovare la funzione wordLimit... mi puoi dire qual'è il file???

grazie mille
saluti

Offline Murphz

  • Global Moderator
  • Abituale
  • *****
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:K2 errore UTF8
« Risposta #3 il: 22 Nov 2011, 20:09:52 »
Avevo dimenticato di segnalare il file da modificare, che è components/com_k2/helpers/utilities.php, circa alla riga 65 troverai la funzione wordlimit.

Ripeto che è una soluzione strana, però per quanto mi riguarda ha funzionato senza problemi.

Fammi sapere come va, ciao...
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

Offline chil8

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:K2 errore UTF8
« Risposta #4 il: 23 Nov 2011, 11:15:20 »
grazie mille!!!  :)
ho fatto rapidamente un po' di test e adesso il mod_k2_content sembra funzionare correttamente.

una cosa simile accade anche con il wordlimit del mod_lofk2slideshow che pensavo fosse legato al k2 ma a quanto pare non è così...

apparentemente sembra risolversi sostituendo
Codice: [Seleziona]
$string        = preg_replace( "/\s+/", " ", strip_tags($item->introtext) ); con
Codice: [Seleziona]
$string        = preg_replace( "/\+/", " ", strip_tags($item->introtext) ); sul file modules/mod_lofk2slideshow/helper.php riga 111

grazie ancora Murphz, mi ha fatto risparmiare ore di lavoro.
ciao

Offline Murphz

  • Global Moderator
  • Abituale
  • *****
  • Post: 1335
  • Sesso: Maschio
  • Trust No1
    • Mostra profilo
Re:K2 errore UTF8
« Risposta #5 il: 23 Nov 2011, 11:19:22 »
Bene, anche se non riesco a comprendere come togliere la s possa essere la soluzione degli accenti. Se qualcuno un giorno può illuminare questo misfatto sarebbe interessante  ???
Freelance Web & Graphic Design // Twitter

"...Nothing Important Happened Today..."

 



Web Design Bolzano Kreatif