PDA

Zobacz pełną wersję : SMO Ajax Shoutbox



mirekwar
10-12-2005, 00:27
mam pewnien problem z tym shoutboxem, a mianowicie w configuracji mam do wyboru tylko dwa rodzaje kodowania iso-8859-1 oraz utf-8, a swoja strone mam pod iso-8859-2 - no i jak się pewnie nie jeden domyśli nie wyświetlają się znaczki z polskimi ogonkami

czy ma ktoś może jakiś pomysł jak to naprawić ?, oczywiście bez potrzeby zmiany kodowania na utf-8

zwiastun
10-12-2005, 01:05
Spróbuj przekonwertować moduł.

mirekwar
10-12-2005, 01:57
czy chodzi k przekonwertowanie plików .php modułu na kodowanie iso-8859-2 ??

prubowałem na sztywno zmienić w plikach modułu i komponentu wszystkie linie gdzie znalazłem wzmianke o iso-8859-1 i utf-8 na iso-8859-2 to tez nic nie mi nie pomogło :mad:

i jeszcze zauwarzyłem dziwną rzecz - kiedy wpisze do shoutboxa np. ś ł ć, to po przesłaniu moduł wyświetla je poprawnie , jednak już po odświerzeniu strony wszystkie ś ł ć itp. zmieniają się na dziwne krzaczki

zwiastun
10-12-2005, 13:31
Sama zmiana wpisów oczywiście nie wystarczy, trzeba jeszcze zapisac w wybranym kodowaniu skrypty z polskimi tekstami.

juzio
20-01-2006, 17:25
A jak wgrac takie skrypty?
Dzięki

palik
01-03-2006, 16:57
znalazłem rozwiązanie jeśli by ktoś potrzebował jeszcze... moduł jest bardzo fajny dlatego trochę się zawziąłem ale powiodło się

Oczywiście najpierw gdzie się da w plikach modułu zmieniamy kodowanie z 8859-1 na 8859-2, nie musimy natomiast ich konwertować w żaden sposób (?)

w pliku mod_smo_ajax_shoutbox.php jest użyta funkcja utf8_decode, która działa tylko w odniesieniu do iso-8859-1. W komentarzach pod opisem tej funkcji (http://pl.php.net/utf8_decode) jest prawie gotowe rozwiązanie, wystarczy zmienić nieco wyżej wymieniony plik modules/mod_smo_ajax_shoutbox.php

PRZED następującymi liniami:




// Why doesn't htmlentities() figure this one out? who knows
function jal_special_chars ($s) {

Wstawimy poniższy kod - nową funkcję, ale UWAGA

UWAGA - musicie pousuwać spacje po znakach & i # - musiałem je dodać żeby forum nie wzięło tych ciągów jako encje i nie zamieniło ich na znaczki polskie

zatem wklejamy



function utf82iso88592($tekscik) {
$tekscik = str_replace("\xC4\x85", '& # 261;', $tekscik);
$tekscik = str_replace("\xC4\x84", '& # 260;', $tekscik);
$tekscik = str_replace("\xC4\x87", '& # 263;', $tekscik);
$tekscik = str_replace("\xC4\x86", '& # 262;', $tekscik);
$tekscik = str_replace("\xC4\x99", '& # 281;', $tekscik);
$tekscik = str_replace("\xC4\x98", '& # 280;', $tekscik);
$tekscik = str_replace("\xC5\x82", '& # 322;', $tekscik);
$tekscik = str_replace("\xC5\x81", '& # 321;', $tekscik);
$tekscik = str_replace("\xC5\x84", '& # 324;', $tekscik);
$tekscik = str_replace("\xC5\x83", '& # 323;', $tekscik);
$tekscik = str_replace("\xC3\xB3", '& # 243;', $tekscik);
$tekscik = str_replace("\xC3\x93", '& # 211;', $tekscik);
$tekscik = str_replace("\xC5\x9B", '& # 347;', $tekscik);
$tekscik = str_replace("\xC5\x9A", '& # 346;', $tekscik);
$tekscik = str_replace("\xC5\xBC", '& # 380;', $tekscik);
$tekscik = str_replace("\xC5\xBB", '& # 379;', $tekscik);
$tekscik = str_replace("\xC5\xBA", '& # 378;', $tekscik);
$tekscik = str_replace("\xC5\xB9", '& # 377;', $tekscik);
return $tekscik;
} // utf82iso88592


pamiętacie o usunięciu spacji? no! :)


No a teraz jeszcze zamieniamy taką linię (kilka linijek niżej):


$s = utf8_decode ( $s );

na taką:



$s = utf82iso88592 ( $s );

wrzucamy plik na serwer, odświeżamy i sprawdzamy czy wpisane znaczki będą już się pojawiać. Poprzednie błędne wpisy trzeba będzie niestety skasować

na dowód że nie ściemniam - na stronie shadowrun-polska (http://www.shadowrun.pro24.pl/srpl/index.php) właśnie skończyłem instalację modułu (lewa kolumna, pod forum)

Pozdrówki

juzio
08-03-2006, 13:24
Dzięki, działa

rw11
12-03-2006, 03:11
Coś chyba źle robię, po wysłaniu posta w okienku ukazuje sie "żźćśąęń", natomiast po odświeżeniu strony "Ä�źşĹ�Ä�Ä�Ĺ�" :confused:

Po wpisaniu wiadomości w okienku ukazuje soię tekst z poprewnie napisanymi polskimi znakami lecz po odświeżeniu strony w miejscu tekstu ukazują się "krzaczki". Czy wie ktoś może czym to jest spowodowane :confused:

Po napisaniu wiadomości wyświetlana je st poprawnie, ale po odświeżeniu strony wychodzą "krzaczki". Czy wie ktoś może jak to naprawić ?

hazael
06-05-2006, 01:23
nie wiem zgupiałem.
robiłem dokladnie tak samo jak w powyzszej instrukcji i ciągle mam na głownej tekst: Fatal error: Cannot redeclare utf82iso88592()

nie wiem zgupiałem
robilem wsio zgodnie z instrukcją i ciągle mam to samo...


Fatal error: Cannot redeclare utf82iso88592()ciagle wyskakuje mi Fatal error: Cannot redeclare utf82iso88592() in

testffff

johny_wav
29-09-2006, 17:48
mi dziala :) jednak jest jedno ale po odswiezeniu strony przestaje dzialac i wpisy z polskimi literkami nie są juz takie jak byc powinny. Dlaczego? Co z tym zrobić?

bzyx
28-01-2007, 15:03
Rzeczywiście działa wielkie dzięki :D

Voltek
03-02-2008, 17:08
Nie ma ściemy, właśnie zrobiłem zmiany w omawianym pliku i tylko w nim. Wszystko gra na 102. Dzięki serdeczne @palik, jesteś wielki, a już dezinstalowałem shoutboxa.

ppx
23-07-2008, 22:03
Posiadam podobny problem ale mam kodowanie UTF zmieniłem tak jak tu pisze ale po odświeżeniu strony dalej dzieje się to samo. Czy tam na pewno ma być tekścik?


//disconnecting from mysql like usual
mysql_close($conn);
}
function utf82iso88591($tekscik) {
$tekscik = str_replace("\xC4\x85", '& #261;', $tekscik);
$tekscik = str_replace("\xC4\x84", 'Ą', $tekscik);
$tekscik = str_replace("\xC4\x87", 'ć', $tekscik);
$tekscik = str_replace("\xC4\x86", 'Ć', $tekscik);
$tekscik = str_replace("\xC4\x99", 'ę', $tekscik);
$tekscik = str_replace("\xC4\x98", 'Ę', $tekscik);
$tekscik = str_replace("\xC5\x82", 'ł', $tekscik);
$tekscik = str_replace("\xC5\x81", 'Ł', $tekscik);
$tekscik = str_replace("\xC5\x84", 'ń', $tekscik);
$tekscik = str_replace("\xC5\x83", 'Ń', $tekscik);
$tekscik = str_replace("\xC3\xB3", 'ó', $tekscik);
$tekscik = str_replace("\xC3\x93", 'Ó', $tekscik);
$tekscik = str_replace("\xC5\x9B", 'ś', $tekscik);
$tekscik = str_replace("\xC5\x9A", 'Ś', $tekscik);
$tekscik = str_replace("\xC5\xBC", 'ż', $tekscik);
$tekscik = str_replace("\xC5\xBB", 'Ż', $tekscik);
$tekscik = str_replace("\xC5\xBA", 'ź', $tekscik);
$tekscik = str_replace("\xC5\xB9", 'Ź', $tekscik);
return $tekscik;
}
// utf82iso88591
// Why doesn't htmlentities() figure this one out? who knows
function jal_special_chars ($s) {
$s = htmlspecialchars( $s, ENT_COMPAT , shoutbox_encoding );

if ( strtolower ( shoutbox_encoding ) != 'utf-8' )
$s = utf8_decode ( $s );

return str_replace("---","−-−",$s);
}

storm
22-05-2009, 13:58
trzeba jeszcze zmienic linijkę na taką:

// Why doesn't htmlentities() figure this one out? who knows
function jal_special_chars ($s) {
$s = htmlspecialchars( $s, ENT_COMPAT , shoutbox_encoding );

if ( strtolower ( shoutbox_encoding ) != 'ISO-88592' )
$s = utf82iso88592 ( $s );

return str_replace("---","−-−",$s);
}

I już powinno byc ok.

edzik
22-06-2009, 20:47
Witam - zrobiłem w ten sposób
wersja joomli następująca:1.0.15 J+AL ISO

tę linijkę
$jal_user_text = mb_convert_encoding($jal_user_text, "ISO-8859-1", "UTF-8");

dałem przed linijkami
$jal_user_text = strip_tags($jal_user_text);
$jal_user_text = substr($jal_user_text,0,500);

i krzaki zniknęły - polskie litery śmigają aż miło w każdej z przeglądarek (Opera, Firefox, IE)