Přátelské URL a problém s diakritikou v Prestashopu 1.5.x

Od počátku verze PrestaShop 1.5.x trpí nedostatkem přepisování diakritiky z url. Přitom v předchozích verzí (1.3.x a 1.4.x) byla tato chyba opravená. Diakritika se tak zobrazí v případě vytváření všech kategorií, produktů, cms stránek pokud se samozřejmě v názvu objevují české znaky. Jednoduchou úpravou souboru /js/admin.js tuto chybu opravíte.

V souboru /js/admin.js najděte funkci str2url (cca 37 řádek), konkrétně řádky:

str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,'');
str = str.replace(/[\u0028\u0029\u0021\u003F\u002E\u0026\u005E\u007E\u002B\u002A\u002F\u003A\u003B\u003C\u003D\u003E]/g,'');
str = str.replace(/[\s\'\:\/\[\]-]+/g,' ');

Přepište je řádky níže:

str = str.replace(/[\u0105\u0104\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5]/g,'a');
str = str.replace(/[\u00E7\u010D\u0107\u0106]/g,'c');
str = str.replace(/[\u010F]/g,'d');
str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u011B\u0119\u0118]/g,'e');
str = str.replace(/[\u00EC\u00ED\u00EE\u00EF]/g,'i');
str = str.replace(/[\u0142\u0141]/g,'l');
str = str.replace(/[\u00F1\u0148]/g,'n');
str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00D3]/g,'o');
str = str.replace(/[\u0159]/g,'r');
str = str.replace(/[\u015B\u015A\u0161]/g,'s');
str = str.replace(/[\u00DF]/g,'ss');
str = str.replace(/[\u0165]/g,'t');
str = str.replace(/[\u00F9\u00FA\u00FB\u00FC\u016F]/g,'u');
str = str.replace(/[\u00FD\u00FF]/g,'y');
str = str.replace(/[\u017C\u017A\u017B\u0179\u017E]/g,'z');
str = str.replace(/[\u00E6]/g,'ae');
str = str.replace(/[\u0153]/g,'oe');
str = str.replace(/[\u013E\u013A]/g,'l');
str = str.replace(/[\u0155]/g,'r');

TIP: Když se i po úpravě zobrazuje u produktu v záložce SEO diakritika? Promažte cache internetového prohlížeče a cache systému prestashop (v nastavení zapnout a vypnout cache/compile).

Upozorňuji, že ve verzi 1.5.3.1 je to v opravené!

Příspěvek byl publikován v rubrice Úpravy se štítky , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

9 komentářů u Přátelské URL a problém s diakritikou v Prestashopu 1.5.x

  1. Papista napsal:

    Dobrý den,
    změna se provedla v pořádku, nicméně nastala jedna eventualita která se předtím neděla. Mám třeba název produktu: „Agricola – Sedláci z blat“. Problém s diakritikou Vaše úprava vyřešila, nicméně nyní mi udělá pomlčky v SEO navíc takto „agricola—sedlaci-z-blat“ (vím že je to přesně podle mého názvu, nicméně před úpravou to tam ty pomlčky nedělalo) Nešlo by to poupravit aby to nebralo tu pomlčku navíc z názvu? Děkuji

  2. Jan Kašpar napsal:

    Doporučuji aktualizovat prestashop na verzi 1.5.3.1, tam je to opravené.

  3. Petr napsal:

    Dobrý den,
    provedl jsem úpravu, vše OK,ale nyní,když chci přidat slevu produktu,tak to hodí při uložení chybu Pole přátelská URL (Český (Czech )) je neplatné. Kde je problém?Děkji
    PS: URL je tam vepsána.Není prázdné pole.

  4. Matěj napsal:

    Ahoj. Mám podobný problém. Když mám v názvu produktu „&“ seo se vygeneruje automaticky, ale při pokusu o uložení píše: Pole přátelská URL (Czech ) je neplatné. Prostě mě to nepustí dál jakmile je tam znak „&“. Neřešil to někdo? Děkuji

  5. Preetinder napsal:

    Hello All,

    I have still issue with Czech characters in prestashop 1.5.4.1 even though I have correct admin.js.

    Any help would be much appreciated.

    Details are in this post

    http://www.prestashop.com/forums/topic/253558-czech-accented-characters-and-friendly-urls-cannot-go-live/

    Thanks

  6. hamil1 napsal:

    Dobrý den,
    ve verzi 1.5.4 mám také problém s URL pokud je název zboží s diakritikou. Např. kočičí ořezávátko se zapíše jako koi-oezvtko. Obsah suboru admin.js je v 1.5.4 trochu jiný, takže si do něho netroufám zasahovat a doporučení na fóru z předchozího dotazu nerozumím.
    Mohl by mi někdo poradit. Děkuji.

  7. Petr napsal:

    Dobrý den,
    mám nainstalovanou verzi 1.5.4.1 a mám ten samý problém s url. Hlásí mi to:
    Pole přátelská URL (English (United States)) je neplatné.
    Pole přátelská URL (Czech) je neplatné.
    Nevíte jak upravit tento problém pro tuto verzi presty???

  8. Robin napsal:

    Problém, které popisuje Matěj (Pole přátelská URL (Czech ) je neplatné. ) lze vyřešit takto:

    K výše uvedeným řádkům přidaným do js/admin.js přidejte ještě následující
    str = str.replace(/[\u0026]/g,'-'); //Nahradí znak & znakem -

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

This blog is kept spam free by WP-SpamFree.