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é!
9 komentářů u Přátelské URL a problém s diakritikou v Prestashopu 1.5.x