Polskie znaki w adresach w Joomla! 1.5
Postanowiłem w końcu postawić coś na Joomla! w najnowszej wersji, czyli 1.5.7. Jak się okazało działa to całkiem sprawnie, i w obsłudze jest trochę wygodniejsze od wersji 1.0. Niestety jak się okazało jest problem z polskimi znakami, które są usuwane z adresów SEO-friendly generowanych przez Joomle. Na szczęście okazało się że można zastosować podobne rozwiązanie jak to które opisałem w poście sNews i polskie krzaczki w URL- wystarczyło odszukać odpowiedni plik
Aby polskie znaki były wstawiane w wersjach bez ogonków do generowanych adresów, należy zmodyfikować plik libraries/joomla/filter/filteroutput.php. W tym pliku musisz odszukać funkcję stringURLSafe (u mnie zaczynała się w linii 82), i zamienić ją na następującą wersję:
function stringURLSafe($string)
{
$from = array('ą','ć','ę','ł','ń','ó','ś','ź','ż','Ą','Ć','Ę','Ł','Ń','Ó','Ś','Ź','Ż');
$to = array('a','c','e','l','n','o','s','z','z','A','C','E','L','N','O','S','Z','Z');
$string = str_replace($from, $to, $string);
$string = preg_replace('/[^a-zA-Z0-9_]/', ' ', $string);
$string = trim($string);
$string = preg_replace('/\s+/', '-', $string);
return strtolower($string);
}
To wszystko – od tego momentu adresy będą się już tworzyć tak jak powinny.

Listopad 10th, 2008 at 20:30
Bardzo przydatna rzecz. Dzięki!
Styczeń 9th, 2009 at 10:23
Niestety, w joomli 1.5.8 ten trick nie działa
Byłbym niezmiernie wdzięczny za napisanie takiej łatki dla 1.5.8.
Styczeń 10th, 2009 at 15:52
Używam tego kodu już jakiś czas na Joomli 1.5.8 bez żadnych problemów. Ta poprawka działa on też na Joomla 1.5.9, która wyszła dzisiaj.
Sprawdź czy zapisujesz plik używając kodowania UTF-8 (zakładam że to właśnie kodowanie używasz) – jeżeli kodowanie pliku będzie inne niż na stronie, to nie będzie to działać.
Styczeń 14th, 2009 at 13:51
qurde… nie działa, tzn. alias (i url) nie wyświetla polskich znaków
Jak sprawdzić czy zapisuję plik w formacie utf-8? Dodam, że templatka ma kodowanie utf-8 a baza sql również jest w utf8_general_ci.
aha… zakładając że uda się zrobić te sef linki, to czy jest możliwość automatycznego wyczyszczenia starych aliasów i aktualizowania? – ale nie chodzi mi o ręczne czyszczenie/poprawianie aliasów.
Styczeń 14th, 2009 at 22:30
Każdy program ma zrobione inaczej ustawienie kodowania znaków – część ma to gdzieś w menu, część w opcjach, jeszcze w innych wybiera się to przy zapisie pliku. Musisz poszukać. Gdybyś jednak nie znalazł, poszukaj programu Gżegżółka – za jego pomocą można konwertować sposoby kodowania znaków w plikach.
Co do istniejących już linków – na pewno można zrobić to odpowiednim skryptem, tylko trzeba go napisać
. Czy jest jakaś opcja która to zrobi automatycznie – nie wiem. Spróbuj może poszukać forum poświęcone Joomli i tam zapytaj
Styczeń 15th, 2009 at 10:10
wielkie dzięki! działa!
Prawdopodobnie problem był z plikiem filteroutput.php, który edytowałem w notatniku i po zapisie zmieniło się kodowanie. Na wszelki wypadek, przejechałem Gżegżółką po plikach w katalogu com_content i mod_mainmenu.
Dzięki
Styczeń 16th, 2009 at 20:35
Nie ma za co
Marzec 26th, 2009 at 14:34
Jeżeli nie chcecie ruszać kodu swojej Joomli! zapraszam do pobrania plugin’u, który tą “dolegliwość” naprawia.
PLUGIN DLA JOOMLA 1.5 PL/UTF-8!!
Pozwala też poprawić istniejące już aliasy w bazie danych, które Joomla! źle wpisała lub zostawiła puste. Sprawdza też czy alias został zmieniony przez użytkownika – jeżeli tak – nie rusza go.
Instrukcja naprawiania istniejących (niepoprawnych) aliasów:
* Zaloguj się jako Super Administrator
* Włącz opcje Napraw Stare w ustawieniach pluginu
* Utwórz nowy artykuł
* Wpisz w aliasie “naprawaliasy” (bez cudzysłowów, tytuł i sekcja – obojętnie)
* Zapisz artykuł
* Później możesz usunąć artykuł – jest on podsumowaniem operacji
Plugin przetestowany informatologicznie na http://www.nowepodhale.pl, działa w 100%.
Do pobrania na http://www.nowepodhale.pl/hobby/40-wsieci/1755-plugin-poprawne-aliasy-w-joomla
Pytania proszę kierować na webmaster at nowepodhale dot pl
Marzec 26th, 2009 at 19:25
Możesz mi wyjaśnić co to znaczy “przetestowany informatologicznie”? Z testami mam do czynienia na co dzień ale takiego określenia jeszcze nie spotkałem
Czerwiec 20th, 2009 at 22:07
Niestety, nie pomoglo.