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é!
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
Doporučuji aktualizovat prestashop na verzi 1.5.3.1, tam je to opravené.
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.
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
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
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.
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???
Tady je funkcni uprava
http://forum.c4.cz/prestashop-1-5-import-csv-cestina-v-pratelskych-url-t3957.html
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 -