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.

This entry was posted on niedziela, Listopad 9th, 2008 at 23:57 and is filed under Skrypty. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

15 komentarzy do “Polskie znaki w adresach w Joomla! 1.5”

  1. Jacek Says:

    Bardzo przydatna rzecz. Dzięki!

  2. bRw Says:

    Niestety, w joomli 1.5.8 ten trick nie działa :( Byłbym niezmiernie wdzięczny za napisanie takiej łatki dla 1.5.8.

  3. SirZooro Says:

    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ć.

  4. Wisan Says:

    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.

  5. SirZooro Says:

    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 :)

  6. Wisan Says:

    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 :)

  7. SirZooro Says:

    Nie ma za co :)

  8. yota Says:

    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

  9. SirZooro Says:

    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 :)

  10. Maciek Says:

    Niestety, nie pomoglo.

  11. Design-DTP.pl Says:

    Działa, działa ;)
    od jakiegoś czasu stosuje to rozwiązanie na swoich polskich witrynach, ostania wersja joomli testowana to 1.5.15
    jeden warunek – wprowadzając kod z przykładu powyżej trzeba pamiętać o przekodowaniu pliku filteroutput.php do utf-8

  12. Arek Says:

    Dzięki wielkie! świetny dodatek! jak można postawić Ci piwo za to? :)

  13. SirZooro Says:

    Jak będziesz kiedyś w KRK to chętnie odbiorę :). Ew. zawsze możesz też wysłać wirtualne :)

  14. piotruś Says:

    Powyższa modyfikacja nie działa w Joomla 1.5.22

  15. tosiek Says:

    Od siebie mogę polecić http://tosiek.pl/polskie-znaki-w-adresach-joomla-sef-url/ pozwala na naprawienie już istniejących aliasów oraz zamienia na odpowiedniki bez ogonków więcej znaków niźli tylko polskie znaki (np. z niemieckiego alfabetu). Jest tam także opisane jak dodać obsługę polskich znaków w Joomli, tak aby były one widoczne w pasku adresu przeglądarki oraz w wynikach wyszukiwania google.

 

Dodaj komentarz

Zanim dodasz komentarz, zapoznaj się z zasadami korzystania z serwisu i polityką prywatności! Komentarze niezgodne z zasadami korzystania z serwisu będę usuwane.

Proszę pozostawić te dwa pola tak jak są: