mklapal Posted November 24, 2009 Share Posted November 24, 2009 Ahoj,narazil jsem na problém s tvorbou URL které obsahují české znakynapříklad:produkt s názvem "žárovka" se v url zobrazí jako "http://.../11-arovka.html"zatím jsem problém identifikoval u znaků ž, č, řnevíte kde to napravit? myslím že se to někde špatně převádí před uložením do DB.Jedu na verzi 1.2.5Díky Michal Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted November 24, 2009 Share Posted November 24, 2009 Hledat viz. entity, čisté url, seo... Link to comment Share on other sites More sharing options...
newpresto Posted November 24, 2009 Share Posted November 24, 2009 js/admin.js od asi 22 řádku nakopíruj (někde tu je postup rozsáhlejší,ale tohle by žárovku mělo vyřešit) str= str.replace(/[\u0161]/g,'s'); str= str.replace(/[\u0159]/g,'r'); str= str.replace(/[\u017E]/g,'z'); str= str.replace(/[\u0148]/g,'n'); str= str.replace(/[\u010F]/g,'d'); str= str.replace(/[\u0165]/g,'t'); Link to comment Share on other sites More sharing options...
mklapal Posted November 26, 2009 Author Share Posted November 26, 2009 vyřešeno, nebyly potřeba žádné úpravy, všechno funguje v pořádkuproblém byl že jsem ty produkty importoval z CSV a proto se ty adresy nevytvořili správněnapsal jsem si skript který to opraví po importu výrobků (něco ve stylu "select name from ps_product_lang" a všechny name prohnal přes funkci seo_url(...) a updatoval do DB u daného ID Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted November 26, 2009 Share Posted November 26, 2009 Trochu práce navíc, ne?Radši si napsat script, než si přidat pár řádků do kodu? Link to comment Share on other sites More sharing options...
abroucek Posted March 18, 2010 Share Posted March 18, 2010 Admin.js jsem upravila, ale žádná změna. Když do názvu produktu napíšu "šiška", tak se mi vygeneruje níže přátelské url "ika" a to i po upraveném admin.js dle pokynů výše.Není tam ještě někde zádrhel? Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 19, 2010 Share Posted March 19, 2010 Ten script by měl fungovat na nové produkty nebo změněné, ne staré. Link to comment Share on other sites More sharing options...
abroucek Posted March 19, 2010 Share Posted March 19, 2010 Zkoušela jsem jak nové, tak upravovat staré, také tvorbu kategorií a pořád to nefunguje ( Link to comment Share on other sites More sharing options...
abroucek Posted March 19, 2010 Share Posted March 19, 2010 omlouvám se, včera to nejelo, dneska už jo... asi si to prohlížeč neobnovil či co... tak pro ostatní, komu by to nejelo, zkuste to zítra ;o) Link to comment Share on other sites More sharing options...
Karel.jedlý Posted March 21, 2010 Share Posted March 21, 2010 Vyřešil jste někdo další české znaky jako je ě ů a podobně? Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 21, 2010 Share Posted March 21, 2010 Jistě Link to comment Share on other sites More sharing options...
Pat Posted March 21, 2010 Share Posted March 21, 2010 Mne to stale nefunguje, vse mam upravene pro vkladani produktu v cestine, ale import jaksi nechce fungovat spravne.Uz su z toho zoufaly, protoze jinak by import byl super, takto je mi na nic.Kdyz se podivam na zdrojak nebo vlozim produkt rucne, tak je cestina naprosto bez problemu, jak to udelam pres import, tak se URL udela jak bylo napsane vyse vynechaji se znaky s diakritikou. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 21, 2010 Share Posted March 21, 2010 Pošli Bacardi, pošlu script Link to comment Share on other sites More sharing options...
Pat Posted March 21, 2010 Share Posted March 21, 2010 Jaky skript, vyse jsi psal, ze to ma slapat normalne.Vsechny upravy cestiny co maji byt mam hotove, ale toto proste nejede. Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 22, 2010 Share Posted March 22, 2010 I ja se pridavam, taky to newjak nemuzu zprovoznit a misto ČASOPISY, LITERATURA mam stale asopisy-literatura. DB smazana a import nanovo, prepsani stareho a porad nic. Tech par radku do admin.js sem vlozil. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 22, 2010 Share Posted March 22, 2010 I ja se pridavam, taky to newjak nemuzu zprovoznit a misto ČASOPISY, LITERATURA mam stale asopisy-literatura. DB smazana a import nanovo, prepsani stareho a porad nic. Tech par radku do admin.js sem vlozil. http://www.topalkohol.cz/hledat?q=bacardi&type=cheap&x=0&y=0 Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 22, 2010 Share Posted March 22, 2010 I ja se pridavam, taky to newjak nemuzu zprovoznit a misto ČASOPISY, LITERATURA mam stale asopisy-literatura. DB smazana a import nanovo, prepsani stareho a porad nic. Tech par radku do admin.js sem vlozil. http://www.topalkohol.cz/hledat?q=bacardi&type=cheap&x=0&y=0 A pijes vsechno z toho nebo chces neco urcityho? ) Dobry tak to vyresim jinak... Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 22, 2010 Share Posted March 22, 2010 Všechno u čeho začíná název na Bacardi %-P Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 22, 2010 Share Posted March 22, 2010 Všechno u čeho začíná název na Bacardi %-P Nejak s tim nemuzu hnout... kam mam poslat tu flasku? Link to comment Share on other sites More sharing options...
Karel.jedlý Posted March 22, 2010 Share Posted March 22, 2010 Celá funkce by měla vypadat takto: function str2url(str,encoding,ucfirst) { str = str.toUpperCase(); str = str.toLowerCase(); str = str.replace(/[\u0105\u0104\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5]/g,'a'); str = str.replace(/[\u00E7\u0107\u0106]/g,'c'); str = str.replace(/[\u00E8\u00E9\u00EA\u00EB\u0119\u0118\u011B]/g,'e'); str = str.replace(/[\u00EC\u00ED\u00EE\u00EF]/g,'i'); str = str.replace(/[\u0142\u0141]/g,'l'); str = str.replace(/[\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00D3]/g,'o'); str = str.replace(/[\u015B\u015A]/g,'s'); str = str.replace(/[\u00F9\u00FA\u00FB\u00FC\u016F]/g,'u'); str = str.replace(/[\u00FD\u00FF]/g,'y'); str = str.replace(/[\u017C\u017A\u017B\u0179]/g,'z'); str = str.replace(/[\u00F1]/g,'n'); str = str.replace(/[\u0153]/g,'oe'); str = str.replace(/[\u00E6]/g,'ae'); str = str.replace(/[\u00DF]/g,'ss'); str= str.replace(/[\u0161]/g,'s'); str= str.replace(/[\u0159]/g,'r'); str= str.replace(/[\u017E]/g,'z'); str= str.replace(/[\u0148]/g,'n'); str= str.replace(/[\u010F]/g,'d'); str= str.replace(/[\u0165]/g,'t'); str= str.replace(/[\u010D]/g,'c'); str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]/g,''); str = str.replace(/[\s\'\:\/\[\]-]+/g,' '); str = str.replace(/[ ]/g,'-'); if (ucfirst == 1) { c = str.charAt(0); str = c.toUpperCase()+str.slice(1); } return str; } Pokud vám tam chybí nějakej českej znak, dejte vědět, zdarma doplním. Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 22, 2010 Share Posted March 22, 2010 Sem retardovanej a negramotnej, ale proste mi to nejde. á, ú v pořádku ale takový č ani smykem.. jo a mam 1.2.5 prestu kdyby se nekdo ptal.. Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 Všechno u čeho začíná název na Bacardi %-P Budou Ti stacit ty 300Kc na ucet, pac objednavat Ti to je asi nesmysl )A pokud jsi z Brna, tak Ti ju klidne donesu ;o) Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 Sem retardovanej a negramotnej, ale proste mi to nejde. á, ú v pořádku ale takový č ani smykem.. jo a mam 1.2.5 prestu kdyby se nekdo ptal.. V klidu, jsme dva ))).Naprosto zadnou diakritiku mi to neda do URL, vubec nic. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 22, 2010 Share Posted March 22, 2010 Já z vás umřu Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 Neumirej a porad ). Co teda delame spatne?Tohle jediny me na preste fakt .... ze porad musi clovek neco opravovat/upravovat Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 22, 2010 Share Posted March 22, 2010 Člověk "nemusí", ale každej si vymejšlí nějaký kokotiny, který by chtěl v eshopu mít, tak se musí přizpůsobit. Jinak Presta english rulez, takže s češtinou prostě nikdo nepočítá, ani teď ani v budoucnosti. Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 No tak to bez diskuze, to je vsechno kvuli te pojebane cestine )), to vim, tos nenapsal novinu.Ale zase na druhou stranu by to nemusel byt takovy problem.Takze vis jak na to a napises to? Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 22, 2010 Share Posted March 22, 2010 Burani, tenhle script pusťte na vašem serveru, vyplňte si tam loginy apod... <?php function friendly_url($nadpis) { $url = $nadpis; $url = strip_tags(html_entity_decode($url)); $url = iconv("UTF-8","windows-1250"."//TRANSLIT",$url); $noalpha = "\xc1\xc9\xcd\xd3\xda\xdd\xe1\xe9\xed\xf3\xfa\xfd\xc2\xca\xce\xd4\xdb\xe2\xea\xee\xf4\xfb\xc0\xc8\xcc\xd2\xd9\xe0\xe8\xec\xf2\xf9\xc4\xcb\xcf\xd6\xdc\xe4\xeb\xef\xf6\xfc\xc3\xe3\xd5\xf5\xc5\xe5\xd1\xf1\xc7\xe7\xba\xaa\x8e\x9e\x9d\x8d\xd8\xf8\x8a\x9a"; $alpha = 'AEIOUYaeiouyAEIOUaeiouACENUrcenuAEIOUaedouAaOoLlNnCcsSZztTRrSs'; $url = strtr($url, $noalpha, $alpha); $url = strtolower($url); $url = preg_replace('~[^a-z0-9_]+~', '-', $url); $url = trim($url, "-"); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); echo $url."\n"; return $url; } //projde všechny výrobky v db @$spojeni = MySQL_Connect('SERVER' ,'USER', 'PASSWORD'); @MySQL_Select_DB('DATABASE'); if (!$spojeni): echo "MySQL fatal error (no database)"; endif; mysql_query("SET CHARACTER SET utf8"); $sql = "select id_product, name, id_lang from ps_product_lang"; $query = mysql_query($sql); $num = mysql_num_rows($query); while ($row=mysql_fetch_assoc($query)): $url = friendly_url($row['name']); $sql2 = "update ps_product_lang set link_rewrite = '$url' where id_product = {$row['id_product']} and id_lang = {$row['id_lang']}"; mysql_query($sql2) or die("SQL dotaz nešlo provést"); endwhile; echo "OK"; ?> Link to comment Share on other sites More sharing options...
Karel.jedlý Posted March 22, 2010 Share Posted March 22, 2010 Mně to maká úplně normálně a taky mám verzi 1.2.5.0. Je potřeba stránku, kde zadáváš produkt reoladnout, pokud jsi upravival admin.js a možná by taky pomohlo vymazání obsahu na /html/tools/smarty/compile/.Jinak na http://www.texaswebdevelopers.com/examples/xmlentities/xml_entities.asp je konvertor, kam zadáš českej znak a po stisknutí convert dostaneš jeho kód. Output format musíš zadat Mixed of decimal/hexadecimal. Takže pokud ti to neumí č, tak konvertor ti vrátí něco jako č . Od zadu vezmeš 2. až 4. znak t.j. 10d , přidáš před něj 0 a výsledek je to co musíš přidat pro přepis z č na c 010D. Pak ten řádek vypadá takto: str= str.replace(/[\u010D]/g,'c'); Jestli v tom nemáš jiný svoje úpravy, zkus můj admin.js admin.js Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 Mně to maká úplně normálně a taky mám verzi 1.2.5.0. Je potřeba stránku, kde zadáváš produkt reoladnout, pokud jsi upravival admin.js a možná by taky pomohlo vymazání obsahu na /html/tools/smarty/compile/.Jinak na http://www.texaswebdevelopers.com/examples/xmlentities/xml_entities.asp je konvertor, kam zadáš českej znak a po stisknutí convert dostaneš jeho kód. Output format musíš zadat Mixed of decimal/hexadecimal. Takže pokud ti to neumí č, tak konvertor ti vrátí něco jako č . Od zadu vezmeš 2. až 4. znak t.j. 10d , přidáš před něj 0 a výsledek je to co musíš přidat pro přepis z č na c 010D. Pak ten řádek vypadá takto: str= str.replace(/[\u010D]/g,'c'); Jestli v tom nemáš jiný svoje úpravy, zkus můj admin.js Ale nam se jednalo o import, ne zadavani produktu, tam to slape dobre. Link to comment Share on other sites More sharing options...
mpmajo Posted March 22, 2010 Share Posted March 22, 2010 Všetky znaky mi idú okrem: Ľ - u013D ľ - u013E ĺ - u013APoraďte kde robím chybu, všetky ostatné znaky s diakritikou fungujú. Link to comment Share on other sites More sharing options...
Pat Posted March 22, 2010 Share Posted March 22, 2010 Burani, tenhle script pusťte na vašem serveru, vyplňte si tam loginy apod...<?php function friendly_url($nadpis) { $url = $nadpis; $url = strip_tags(html_entity_decode($url)); $url = iconv("UTF-8","windows-1250"."//TRANSLIT",$url); $noalpha = "\xc1\xc9\xcd\xd3\xda\xdd\xe1\xe9\xed\xf3\xfa\xfd\xc2\xca\xce\xd4\xdb\xe2\xea\xee\xf4\xfb\xc0\xc8\xcc\xd2\xd9\xe0\xe8\xec\xf2\xf9\xc4\xcb\xcf\xd6\xdc\xe4\xeb\xef\xf6\xfc\xc3\xe3\xd5\xf5\xc5\xe5\xd1\xf1\xc7\xe7\xba\xaa\x8e\x9e\x9d\x8d\xd8\xf8\x8a\x9a"; $alpha = 'AEIOUYaeiouyAEIOUaeiouACENUrcenuAEIOUaedouAaOoLlNnCcsSZztTRrSs'; $url = strtr($url, $noalpha, $alpha); $url = strtolower($url); $url = preg_replace('~[^a-z0-9_]+~', '-', $url); $url = trim($url, "-"); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); echo $url."\n"; return $url; } //projde všechny výrobky v db @$spojeni = MySQL_Connect('SERVER' ,'USER', 'PASSWORD'); @MySQL_Select_DB('DATABASE'); if (!$spojeni): echo "MySQL fatal error (no database)"; endif; mysql_query("SET CHARACTER SET utf8"); $sql = "select id_product, name, id_lang from ps_product_lang"; $query = mysql_query($sql); $num = mysql_num_rows($query); while ($row=mysql_fetch_assoc($query)): $url = friendly_url($row['name']); $sql2 = "update ps_product_lang set link_rewrite = '$url' where id_product = {$row['id_product']} and id_lang = {$row['id_lang']}"; mysql_query($sql2) or die("SQL dotaz nešlo provést"); endwhile; echo "OK"; ?> Super diky, tohle slape, akorad skoda, ze to nejde primo osetrit v kodu. Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 23, 2010 Share Posted March 23, 2010 Burani, tenhle script pusťte na vašem serveru, vyplňte si tam loginy apod...<?php function friendly_url($nadpis) { $url = $nadpis; $url = strip_tags(html_entity_decode($url)); $url = iconv("UTF-8","windows-1250"."//TRANSLIT",$url); $noalpha = "\xc1\xc9\xcd\xd3\xda\xdd\xe1\xe9\xed\xf3\xfa\xfd\xc2\xca\xce\xd4\xdb\xe2\xea\xee\xf4\xfb\xc0\xc8\xcc\xd2\xd9\xe0\xe8\xec\xf2\xf9\xc4\xcb\xcf\xd6\xdc\xe4\xeb\xef\xf6\xfc\xc3\xe3\xd5\xf5\xc5\xe5\xd1\xf1\xc7\xe7\xba\xaa\x8e\x9e\x9d\x8d\xd8\xf8\x8a\x9a"; $alpha = 'AEIOUYaeiouyAEIOUaeiouACENUrcenuAEIOUaedouAaOoLlNnCcsSZztTRrSs'; $url = strtr($url, $noalpha, $alpha); $url = strtolower($url); $url = preg_replace('~[^a-z0-9_]+~', '-', $url); $url = trim($url, "-"); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); echo $url."\n"; return $url; } //projde všechny výrobky v db @$spojeni = MySQL_Connect('SERVER' ,'USER', 'PASSWORD'); @MySQL_Select_DB('DATABASE'); if (!$spojeni): echo "MySQL fatal error (no database)"; endif; mysql_query("SET CHARACTER SET utf8"); $sql = "select id_product, name, id_lang from ps_product_lang"; $query = mysql_query($sql); $num = mysql_num_rows($query); while ($row=mysql_fetch_assoc($query)): $url = friendly_url($row['name']); $sql2 = "update ps_product_lang set link_rewrite = '$url' where id_product = {$row['id_product']} and id_lang = {$row['id_lang']}"; mysql_query($sql2) or die("SQL dotaz nešlo provést"); endwhile; echo "OK"; ?> Sice na lidi stekas ale i tak mas dobry srdce ) Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 23, 2010 Share Posted March 23, 2010 To vaše brečení bylo k nevydržení.... Link to comment Share on other sites More sharing options...
Jonh Doe Posted March 23, 2010 Share Posted March 23, 2010 To vaše brečení bylo k nevydržení.... Vid? ) Cekej balicek. Link to comment Share on other sites More sharing options...
JAKCRABBIT Posted March 23, 2010 Share Posted March 23, 2010 To vaše brečení bylo k nevydržení.... Vid? ) Cekej balicek. Anthraxu předpokládám Link to comment Share on other sites More sharing options...
[email protected] Posted April 21, 2011 Share Posted April 21, 2011 zdravím, řeším stejný problém s URL ve verzi 1.4, nevíte náhodou o nějakým řešení ? Díky Link to comment Share on other sites More sharing options...
Tenvelkej Posted April 21, 2011 Share Posted April 21, 2011 zdravím, řeším stejný problém s URL ve verzi 1.4, nevíte náhodou o nějakým řešení ? Díky jako ty chceš mít hačky a čárky v URL ? :-) Link to comment Share on other sites More sharing options...
[email protected] Posted April 21, 2011 Share Posted April 21, 2011 to ne ale pokud importuju zboží tak mi v url adrese píše místo žárovka tak arovka nebo místo olověný tak olovny. prostě píemeno kde je háček tak to vynechá. zkoušel jsem to admin.js a i ten script a ani jedno se mi nepovedlo. netuším kde hledat. díky Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now