Zobacz pełną wersję : Polskie znaki dla RSS
Mam problem z polskimi znakami w kanałach rss:
" któremu grozi kara ?mierci za przej?cie na chrze?cija?stwo, mo?e unikn??"
Tak to niestety wygląda. Zminiłem kodowanie w pliku "feedcreator.class" na encoding=\"iso-8859-2\ i nic nie pomogło.
Dotyczy to tylko RSS.
:confused:
Chyba nie doczekam się odpowiedzi na moje pytanie :( Siedzę nad tym sam już kilka dni i efektu brak.
Czy ktoś ma polskie litery w wiadomościach RSS na swojej stronie ?????????
Proszę o linka do takiej strony, chyba że tak juz na razie jest i trzeba poczekać do następnej wersji Jommla.
mam Joomla! 1.0.8 Stable [ Sunshade ] 26-Feb-2006 na localhost
Wersja MySQL:: 4.0.23
Wersja PHP:: 5.0.3
Serwer WWW:: Apache/2.0.52 (Win32) PHP/5.0.3
Ciekawe dlaczego nikt Ci nie odpowiedział ?
Może powodem jest to, że wiekszośc osób używa Joomli 1.8 PL, gdzie wszystko już zostało odpowiednio dostosowane. Nie ma więc problemy "pliterek" w wieściach RSS.
Jeśli więc nie chcesz wersji PL, to przynajmniej sobie ją ściągnij i porównaj pliki.
Pozdrawiam
frico
zwiastun
26-03-2006, 14:50
Dla pewności proszę jeszcze sprawdzić, bo możliwe, że to później wprowadzona poprawka i nieopublikowana
w pliku /includes/joomla.php
odszukać funkcję:
function newsfeedEncoding( $rssDoc )
i dokonać trzykrotnie poprawienia linii
//zwiast $encoding = 'utf8_decode'; poprawić na:
$encoding = 'utf8tolatin2';
Ciekawe dlaczego nikt Ci nie odpowiedział ?
Może powodem jest to, że wiekszośc osób używa Joomli 1.8 PL, gdzie wszystko już zostało odpowiednio dostosowane. Nie ma więc problemy "pliterek" w wieściach RSS.
Jeśli więc nie chcesz wersji PL, to przynajmniej sobie ją ściągnij i porównaj pliki.
Pozdrawiam
frico
Frico - nie pomyliły Ci się wersję trochę. Nadchodzi Joomla! 1.0.9 a Ty masz 1.8 PL - tylko skąd ?????? :)
Niestety Zwiastun mimo szczerych chęci po zmnanie na
$encoding = 'utf8tolatin2';
pojawia się
Fatal error: Call to undefined function utf8tolatin2() in C:\WebServ\httpd-users\agroportal\components\com_newsfeeds\newsfeed s.html.php on line 274
może masz jeszcze jakieś pomysły bo ja już nie mam - niestety :confused:
zwiastun
26-03-2006, 20:21
Mam, tylko nie wiem, czyś zasłużył, za czepianie się frico...:D
Ocywiscie, brakuje funkcji, bo w dobroci swojej jej nie podałem
dopisz gdzieś na końcu
function utf8tolatin2($content){
return iconv("UTF8","LATIN2",$content);
}
Zwiastun zmieniłem to następująco:
function newsfeedEncoding( $rssDoc ) {
// test if PHP 5
if ( phpversion() >= 5 ) {
// test if page is utf-8
if ( strpos(_ISO,'utf')!== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'html_entity_decode';
} else {
// non utf-8 page
$encoding = 'utf8tolatin2';
}
} else {
// handling for PHP 4
// determine encoding of feed
$text = $rssDoc->toNormalizedString(true);
$text = substr( $text, 0, 100 );
$utf8 = strpos( $text, 'encoding="utf-8"' );
// test if feed is utf-8
if ( $utf8 !== false ) {
// test if page is utf-8
if ( strpos(_ISO,'utf')!== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'html_entity_decode';
} else {
// non utf-8 page
$encoding = 'utf8tolatin2';
}
} else {
// handling for non utf-8 feed
// test if page is utf-8
if ( strpos(_ISO,'utf') !== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'utf8tolatin2';
} else {
// non utf-8 page
$encoding = 'html_entity_decode';
}
}
}
return $encoding;
}
}
function utf8tolatin2($content){
return iconv("UTF8","LATIN2",$content);
}
i w tym momencie zginęły mi wszystkie wieści RSS :(
Tak sobie myślę czy nie zainstalować jomli jeszcze raz i czy nie przerzucić plików odpowiedzialnych za RSS, albo przynajmniej je porównać !!!
Czy wogóle jest to wykonalne ???
A może to wina jakiegoś zainstalowanego dodatku lub komponetu ?????
Pozdrowienia, dzieki za cierpliwość
Dobranoc
Nadchodzi Joomla! 1.0.9 a Ty masz 1.8 PL - tylko skąd ?????? :)
Ależ popędziłem ... Racja oczywiście. Miałem na myśli 1.0.8 PL
Tak to jest jak człowiek już skrótowo zaczyna mysleć.
Pozdrawiam
frico
adamszmu
30-03-2006, 23:54
sprubuj odpalic joomle na serverze php4. ja na php5 mam ten sam problem na php4 dziala ok
Zainstalowałem Jommlę od nowa i sprawdziłem czy w kanałach RSS będą polskie znaki - niestety. Wychodzę z założenia że może to być wina mojego localhosta i postanowiłem wstrzymać się z jakimikolwiek zmianami do czasu wrzucenia portalu na serwer w sieci.
Mój locahost to:
Webserv 1.2 a w nim:
Apache 2.0.52
PHP 5.0.3
MySQL 4.0.23
Pozdrawiam
ogranicz zestaw komend php do 4.x
w pliku .htaccess dopisz linijke:
SetEnv PHP_VER 4
Niestety Rybik dalej jest:
Jan Krzysztof Ardanowski b?dzie przebywa? w Zagrzebiu gdzie we?mie udzia? w konferencji dotycz?cej przysz?o?ci rolnictwa w nowych krajach cz?onkowskich UE
mimo dodania SetEnv PHP_VER 4 do pliku htaccess.txt (innego pliku tego typu nie mam):confused:
Dzięki za pomoc. Czekam na kolejne propozycje - chętnie potestuję coś jeszcze. :)
Pozdrowienia
proponuję mienić nazwę z htaccess.txt na .htaccess (kropka z przodu, bez rozszerzenia) inaczej serwer w ogóle nie bierze tego pliku pod uwagę...
jeśli w tym htaccess.txt są inne komendy jeszcze to może żeby nie zamotać sytuacji skopiuj je sobie gdzieś a w pliku zostaw tylko to co radził ci Rybik...
pozdravki!
Palik - niestety po zmianie nazwy pliku na .htaccess pojawiła się pusta strona i :
BŁĄD 500
Wewnętrzny błąd serwera!
WebServ 1.2 (Apache 2.0.52, PHP 5.0.3, MySQL 4.0.23)
:(
czyli serwer jest tak skonfigurowany że nie pozwala na .htaccess z tą komendą... a jeszcze jedna uwaga ode mnie - nikt nie zauważył chyba że kiedy skorzystałeś z porady zwiastuna dopisałeś funkcję utf8tolatin2 poniżej kodu który tę funkcję wywoływał, a dodatkowo chyba za dużo o jeden nawias klamrowy jest - to mogło być przyczyną braku rss - może wystarczyłoby przenieść kod tej funkcji nad kod funkcji w której wywołujesz utf8tolatin? jeśli nie pomylisz się z nawiasami klamrowymi to spróbuj to zrobić. Poniżej wkleiłem ci kod który sprawdziłem pod względem nawiasów (ale na szybko więc jeszcze raz sprawdź), z funkcją utft8olatin umieszczoną we właściwym miejscu...
nie do końca orientuję się jak joomla rodzi sobie z php5 - o ile na serwerze docelowym będzie php4 bardzo bym ci radził zmienić sobie localhosta na możliwi podobne ustawienia co serwer na którym wyląduje strona...
inne miejsca do sprawdzenia to konfiguracja apache, plik w conf/httpd.conf (u mnie) i sprawdzenie czy masz wpis:
AddDefaultCharset ISO-8859-2
lub
AddDefaultCharset UTF-8
(ja mam oba ale u ciebie może któregoś brakować, zależnie od żądanego kodowania)
poniżej ten kod o którym pisałem
function utf8tolatin2($content){
return iconv("UTF8","LATIN2",$content);
}
function newsfeedEncoding( $rssDoc ) {
// test if PHP 5
if ( phpversion() >= 5 ) {
// test if page is utf-8
if ( strpos(_ISO,'utf')!== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'html_entity_decode';
} else {
// non utf-8 page
$encoding = 'utf8tolatin2';
}
} else {
// handling for PHP 4
// determine encoding of feed
$text = $rssDoc->toNormalizedString(true);
$text = substr( $text, 0, 100 );
$utf8 = strpos( $text, 'encoding="utf-8"' );
// test if feed is utf-8
if ( $utf8 !== false ) {
// test if page is utf-8
if ( strpos(_ISO,'utf')!== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'html_entity_decode';
} else {
// non utf-8 page
$encoding = 'utf8tolatin2';
}
} else {
// handling for non utf-8 feed
// test if page is utf-8
if ( strpos(_ISO,'utf') !== false || strpos(_ISO,'UTF') !== false ) {
$encoding = 'utf8tolatin2';
} else {
// non utf-8 page
$encoding = 'html_entity_decode';
}
}
}
return $encoding;
}
ciężko w ciemno pomagać, pamiętam że z rss miałem duże problemy ze znalezieniem miejsca w którym na sztywno wpisane było iso-8859-1 zamiast 2, i zajęło mi to sporo czasu... myślę że jak wrzucisz na serwer stronę będzie dużo łatwiej ci pomóc :)
powodzenia!
Trochę już czasu minęło, ale ponieważ potknąłem się o ten sam temat, dodam swoje conieco. Instalowałem J1.0.8PL i polskich literek nie miałem
1. W includes/joomla.php nie uwzględniono kodowania zapisanego jako UTF-8 (wielkimi literami). Stąd potrzebna jest poprawka, np.:
z: $utf8 = strpos($text, 'encoding="utf-8"' );
na: $utf8 = strpos(strtolower($text), 'encoding="utf-8"' );
2. Zmiana utf8_decode na utf8tolatin2 nie załatwia sprawy, bo unicode ma sporo znaczków, które w latin2 nie występują. W podręczniku PHP (http://pl.php.net/manual/pl/function.utf8-decode.php#19531) przy funkcji utf8_decode jest natomiast zamieszczona funkcja utf8ToUnicodeEntities, która wszystko poza ASCII zamienia na &#xxx; -- działa!
Dopiero po wprowadzeniu powyższych zmian udało mi się (http://www.legatus.org.pl/sapientia/index.php?option=com_newsfeeds&task=view&feedid=15&Itemid=7) prawidłowo wyświetlić kanały z Opoki (http://forms.opoka.org.pl/rss.php).
jeśli w tym htaccess.txt są inne komendy jeszcze to może żeby nie zamotać sytuacji skopiuj je sobie gdzieś a w pliku zostaw tylko to co radził ci Rybik...
standardowy htaccess zawiera zestaw narzedzi do optymalizacji SEF i o ile serwer pozwala na uzywanie .htaccess to zmiana nazwy (uaktywnienie go) niczego nie zmienia, SEF wlacza sie w konfiguracji, a dodatkowe polecenia do tego pliku mozna spokojnie dopisywac na koncu w nowych liniach
W Joomli 1.0.9 konwersja utf-iso dla kanałów RSS jest taka sama, jak dotychczas, tzn. stosuje się utf8_decode, co z założenia gubi wszystko poza ascii. Co można zrobić, by ktoś kiedyś zmienił odpowiednio includes/joomla.php?
tez mam Joomla 1.08 stable... i polskich znakow nie mam... co mzoe mi pomoc? bo tak tutaj namieszaliscie, ze nie wiem wkoncu czego sie posluchac :(
zgodnie z zasadą "każda sroczka swój ogonek chwali" polecam Ci opisaną wyżej modyfikację pliku includes/joomla.php, tzn.:
1) zmienić
z: $utf8 = strpos($text, 'encoding="utf-8"' );
na: $utf8 = strpos(strtolower($text), 'encoding="utf-8"' );
oraz z: utf8_decode
na: utf8ToUnicodeEntities
2) dopisać definicję funkcji utf8ToUnicodeEntities (z podręcznika PHP)
Możesz też poczekać, bo w kolejnym wydaniu J ma być obsługa utf-8, a kolejne wydanie ma być lada chwila... a przynajmniej miało być lada chwila kilka miesięcy temu ;-)
tez mialam problem z polskimi znakami ale po zainstalowaniu slick rss problem zniknal
podaje link do strony skad mozna pobrac modul http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,1649/Itemid,35/
zas link do strony jak wyglada dzialajacy modul jest http://www.polish-lace.5o.pl/joomla/
Jedna uwaga.... strona jest w trakcie budowy wiec prosze nie komentowac wygladu :)
Mam nadzieje, ze pomoglam :)
Pozdrawiam i zycze milego dnia
Dakota
2) dopisać definicję funkcji utf8ToUnicodeEntities (z podręcznika PHP)
Możesz to tutaj wkleić, jeśli to nie problem?
pozdr,
Brzoza
Miałam identyczny problem z wyświetleniem znaków z innych stron w wiadomościach RSS. Rozwiązałam go w następujący sposób w ustawieniach serwera jest cos takiego jak interpretuj pliki .php jako PHP4 lub 5. Jak wybiore 5 wszystko sie chrzani a jak jest 4 to jest ok. Acha wskazówka jeśli wybierze się wersję PHP4 warto jeszcze raz zainstalować joomle bo po zmianie interpretacji z php5 na 4 zainstalowana wczesniej joomla pod PHP5 tez nie dzialala poprawnie. Poprawnie zadziałała dopiero po ponownym zainstalowaniu. Wersje PHP jakiej uzywa joomla mozna sprawdzic w panelu administratora zakładka system pole informacje o systemie potem pojawia sie 3 zakladki sprawdzic trzeba srodkowa PHP i tam sprawdzic version. Z PHP5 na 4 mozna zmienic na pare sposobow najprosciej zadzwonic albo napisac do Admina serwera i zapytac jak zmienić, inna metoda to użycie zakladki ustawienia PHP i wybrac PHP4 (np. tak łatwo sie zmienia na www.nazwa.pl) jesli chodzi o panel Direct Admin (wystepujacy m.in. na www.az.pl trzeba wejsc na konkretna domene pod ktora jest joomla z Zaawansowane opcje wybrać dodać Apache Handlers a potem w pole handler wpisac php4-cgi a w rozszerzenie .php A tak nawiasem mowiac kodowanie mam latin-2 general_ci w SQl-u a wersja MYSQL jest 5.0.22 a PHP 4.4.4. Używam Joomla! 1.0.11 Stable [ Sunbow ] 28 August 2006 20:00 UTC. Na głownej stronie PHPmyadmina mam : System kodowania znaków dla MySQL: UTF-8 Unicode (utf8); System porównań dla połączenia MySQL: UTF8 unicode i takie ustawienia były podczas instalacji potem po utworzeniu zieniły sie ustawienia w bazie danych joomli na latin2_general_ci. W razie jakichkolwiek kłopotów z ustrojstwem SPINACZ RSS piszczie chętnie pomogę. Pozdrawiam
offtopic troche ale dla sprostowania i jasnosci:
Joomla powinna działać od początku na php 4.x, mysql 4.x, w bazie danych zawsze metoda porowywania znakow dla polaczen mysql : utf-8, dla tabel: latin2_general_ci.
Przy operacjach export/import trzeba pamiętać o kodowaniu latin2 i trybie zgodności MYSQL40
Na RSS metoda podana przez staho wygląda na najlepszą
Czy możecie załączyć plik z poprawionym kodowaniem rss bo próbowałem go poprawić wedle w/w wskazówek ale wywala błąd:(
z góry dzięki za pomoc
mery_master
03-11-2007, 01:25
tez nie moge tego rozgryzc...moze cos ruszylo ?
Staho - dzieki :)
watpilem czy mi sie uda, ale dalem rade i mi dziala. tylko ja z mateusz.pl bralem rss.
nie wiem czy komus to sie przyda, ale w pliku includes/joomla.php zmianei ulegly linijki
5124
z utf8_decode
na utf8ToUnicodeEntities
5131
z $utf8 = strpos($text, 'encoding="utf-8"' );
na $utf8 = strpos(strtolower($text), 'encoding="utf-8"' );
i 5140
z utf8_decode
na utf8ToUnicodeEntities
Joomla! 1.0.8 Stable [ Sunshade ] 26-Feb-2006 05:00 UTC
appaloosa
22-11-2007, 13:32
Ale dla jakiej wersji joomla?
witam bardzo potrzebuje pomocy o to link http://gubus00.lua.pl
skasowałem główny baner na samej górze jak mam wstawić tam swój i jak tą rekleme google skaosować i zminić ten żółty kolor czekma na szybko odp dzieki z góry az pomoc pozdrawiam :)
mery_master
23-11-2007, 01:01
zeby rssy działały wyłączyć schowek w ustawieniach syndicata.
Mam, tylko nie wiem, czyś zasłużył, za czepianie się frico...:D
Ocywiscie, brakuje funkcji, bo w dobroci swojej jej nie podałem
dopisz gdzieś na końcu
function utf8tolatin2($content){
return iconv("UTF8","LATIN2",$content);
}
Ech. Mam joomle 1.0.15 iso i tą funkcje nadal trzeba samemu dopisac. A niby ta wersja jest juz taka stable, dopracowana i wogole ;)
Dzięki za pomoc
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!