Strona główna forum Wsparcie Moduły i dodatki Generowane url'e - poprawione

Generowane url'e - poprawione

Wszystko o modułach i dodatkach dla Magento...

Post 28 maja 2009, o 12:01

Posty: 2
Gadu-Gadu: 718559

Witam,

Zauważyłem, że gdy generowany jest URL dla kategorii/produktu, który zawiera polskie znaki, jest obcinany do litery przed tym znakiem.
Denerwowało mnie to troszkę, dlatego poprawiłem to - i działa :)
Poniżej zamieszczam kod modyfikacji.

Efekty:
- oryginalnie: pokój dziecięcy
- wygenerowany url: pokoj-dzieci
- z poprawkami: pokoj-dzieciecy

How-to:
1. postępuj zgodnie z poniższymi punktami, lub jeżeli pracujesz na wersji magento 1.3.1.1 przejdź do kroku 5

2. w folderze app/code/local stwórz ścieżkę: Mage/Core/Helper (czyli wyjdzie: app/code/local/Mage/Core/Helper/),
3. skopiuj plik: app/code/core/Mage/Core/Helper/Data.php do nowo utworzonego folderu,
4. wprowadź poniżej zamieszczoną modyfikację (podmień całą funkcję)

5. jeżeli masz wersję magento 1.3.1.1 i nie chcesz modyfikować ręcznie pliku, pobierz paczuszkę i wypakuj do folderu z magento

funkcja: removeAccents (linia 245)

    public function removeAccents($string, $german=false)
    {
        static $replacements;

        if (empty($replacements[$german])) {
            $subst = array(
                // single ISO-8859-1 letters
                192=>'A', 193=>'A', 194=>'A', 195=>'A', 196=>'A', 197=>'A', 199=>'C', 208=>'D', 200=>'E', 201=>'E', 202=>'E', 203=>'E', 204=>'I', 205=>'I', 206=>'I', 207=>'I', 209=>'N', 210=>'O', 211=>'O', 212=>'O', 213=>'O', 214=>'O', 216=>'O', 138=>'S', 217=>'U', 218=>'U', 219=>'U', 220=>'U', 221=>'Y', 142=>'Z', 224=>'a', 225=>'a', 226=>'a', 227=>'a', 228=>'a', 229=>'a', 231=>'c', 232=>'e', 233=>'e', 234=>'e', 235=>'e', 236=>'i', 237=>'i', 238=>'i', 239=>'i', 241=>'n', 240=>'o', 242=>'o', 243=>'o', 244=>'o', 245=>'o', 246=>'o', 248=>'o', 154=>'s', 249=>'u', 250=>'u', 251=>'u', 252=>'u', 253=>'y', 255=>'y', 158=>'z',
                // HTML entities
                258=>'A', 260=>'A', 262=>'C', 268=>'C', 270=>'D', 272=>'D', 280=>'E', 282=>'E', 286=>'G', 304=>'I', 313=>'L', 317=>'L', 321=>'L', 323=>'N', 327=>'N', 336=>'O', 340=>'R', 344=>'R', 346=>'S', 350=>'S', 354=>'T', 356=>'T', 366=>'U', 368=>'U', 377=>'Z', 379=>'Z', 259=>'a', 261=>'a', 263=>'c', 269=>'c', 271=>'d', 273=>'d', 281=>'e', 283=>'e', 287=>'g', 305=>'i', 322=>'l', 314=>'l', 318=>'l', 324=>'n', 328=>'n', 337=>'o', 341=>'r', 345=>'r', 347=>'s', 351=>'s', 357=>'t', 355=>'t', 367=>'u', 369=>'u', 378=>'z', 380=>'z',
                // ligatures
                198=>'Ae', 230=>'ae', 140=>'Oe', 156=>'oe', 223=>'ss',
            );

         /* usuniete */
            /*if ($german) {
                // umlauts
                $subst = array_merge($subst, array(196=>'Ae', 228=>'ae', 214=>'Oe', 246=>'oe', 220=>'Ue', 252=>'ue'));
            }*/

            $replacements[$german] = array();
            foreach ($subst as $k=>$v) {
                $replacements[$german][$k<256 ? chr($k) : '&#'.$k.';'] = $v;
            }

         /* dodane */
         $replacements[$german] = array_merge($replacements[$german], array(
            'ą'=>'a', 'Ą'=>'A',
            'ć'=>'c', 'Ć'=>'C',
            'ę'=>'e', 'Ę'=>'E',
            'ł'=>'l', 'Ł'=>'L',
            'ń'=>'n', 'Ń'=>'N',
            'ó'=>'o', 'Ó'=>'O',
            'ś'=>'s', 'Ś'=>'S',
            'ź'=>'z', 'Ź'=>'Z',
            'ż'=>'z', 'Ż'=>'Z',

            'ä'=>'a', 'Ä'=>'A',
            'ü'=>'u', 'Ü'=>'U',
            'ö'=>'o', 'Ö'=>'O',
         ) );
        }

      /* usuniete */
        // convert string from default database format (UTF-8)
        // to encoding which replacement arrays made with (ISO-8859-1)
        /*if ($s = @iconv('UTF-8', 'ISO-8859-1', $string)) {
            $string = $s;
        }*/

        // Replace
        $string = strtr($string, $replacements[$german]);

        return $string;
    }
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

Generowane url'e - poprawione

PostTeraz jest 24 lis 2024, o 13:45
Google

Posty: 427
Lokalizacja: Internet

Post 28 maja 2009, o 14:00
jemoon Avatar użytkownika
Administrator

Posty: 529
Lokalizacja: Gdańsk
Gadu-Gadu: 0

witam,
Efekty:
- oryginalnie: pokój dziecięcy
- wygenerowany url: pokoj-dzieci
- z poprawkami: pokoj-dzieciecy

zgodnie z tym co pisałeś wcześniej wygenerowany url wyglądałby raczej tak :) (wiem, że się czepiam ale ciągle pada i nie mam co robić):
- wygenerowany url: pok

Post 24 lis 2010, o 23:47

Posty: 3
Gadu-Gadu: 1348

W wersji 1.4.1.1 trzeba podmienić to w pliku:
app/code/core/Mage/Core/Helper/Data.php

Post 27 cze 2013, o 08:11

Posty: 3
Gadu-Gadu: 0

Działa wyśmienicie w wersji 1.6.0.0 ale tylko dla produktów. Gdzie jeszcze poprawić dla kategorii ?


Powrót do Moduły i dodatki