Zobacz pełną wersję : SMO Ajax Shoutbox
mirekwar
09-12-2005, 23: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, 00:05
Spróbuj przekonwertować moduł.
mirekwar
10-12-2005, 00: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, 12:31
Sama zmiana wpisów oczywiście nie wystarczy, trzeba jeszcze zapisac w wybranym kodowaniu skrypty z polskimi tekstami.
A jak wgrac takie skrypty?
Dzięki
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
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ć ?
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ć?
Rzeczywiście działa wielkie dzięki :D
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.
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);
}
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.
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)
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!