Post by vojtech25 » Thu Aug 12, 2010 4:31 pm

Cago vsichni,

pouzivam verzi 1.4.7 a mam problem s vyhledavanim s diakritikou.. pokud se produkt jmenuje (nebo ma v popisku) napr. "okružní pila" , a pokud tohle spojeni zadam do vyhledavani, produkt to proste nanejde. Kdyz ten produkt pojmenuju "okruzni pila" , uz ho to najde, cili problem je urcite s diakritikou.

Uz jsem koukal do jinyho threadu kde se tehle problem resil - vyresili to tim ze poupravili soubor system/library/request.php , me vsak toto reseni nepomohlo..

Napada vas prosim nekoho, kde muze bejt problem???
Diky moc za jakykoliv napady

______________________________________________________
http://www.vojtechzahorsky.com


New member

Posts

Joined
Tue Jan 19, 2010 7:18 pm

Post by zdenek.hrib » Thu Aug 19, 2010 6:31 pm

pro verzi 1.4.8b

rychlé řešení:
vložit někam na začátek do index.php
setlocale(LC_ALL, "cs_CZ.UTF-8")

systémové řešení:
vložit na řádek 179 do index.php
setlocale(LC_ALL, substr($languages[$code]['locale'],0,strpos($languages[$code]['locale'], ",")));
a mít u češtiny pole "označení" nastavené v administraci jazyků
"cs_CZ.UTF-8,cs_CZ,czech" (bez uvozovek, po vzoru angličtiny namísto původního "cs" doporučovaného instalačním návodem na češtinu)

Newbie

Posts

Joined
Thu Aug 19, 2010 7:10 am

Post by vojtech25 » Sat Aug 21, 2010 5:25 am

Diky moc za snahu a radu. Bohuzel to vsak nefunguje.. Zkousel sem obe moznosti.. Mozna bude problem v tom, ze pouzivam verzi 1.4.7... Ale i tak jeste jednou dekuji

______________________________________________________
http://www.vojtechzahorsky.com


New member

Posts

Joined
Tue Jan 19, 2010 7:18 pm

Post by zdenek.hrib » Wed Aug 25, 2010 12:04 am

tak jinak:

zkuste v souboru catalog\model\catalog\product.php najít funkci getTotalProductsByKeyword a v ní před řádek
$query = $this->db->query($sql);

vložit nový řádek
$this->log->write($sql);

pak smažte soubor
system/logs/error.txt

pak zkuste něco vyhledat s diakritikou a vložte sem oto co vám to napíše do souboru
system/logs/error.txt

Newbie

Posts

Joined
Thu Aug 19, 2010 7:10 am

Post by vojtech25 » Wed Aug 25, 2010 4:54 pm

Dobry den,

tak toto se zapsalo do chyb. logu:

Code: Select all

2010-08-25 8:49:32 - SELECT COUNT(*) AS total FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '2' AND p2s.store_id = '0' AND (LCASE(pd.name) LIKE '%brousic„≠ kotou‰çe%' OR LCASE(pd.description) LIKE '%brousic„≠ kotou‰çe%' OR LCASE(p.model) LIKE '%brousic„≠ kotou‰çe%') AND p.status = '1' AND p.date_available <= NOW()
vyhledané slovo mělo být brousící kotouče..

Ale už asi vím, kde je problém. V databázi je popis produktu uložen pomocí těch entit.. Čili ram je třeba Diamantov&aacute; bruska, místo Diamantová bruska atp. Tím pádem když pak vyhledávám slovo s "á", nemůže se najít když je uloženo jako "&aacute" .. Je to celkem zvláštní, protože jméno produktu a další věci jsou uložené v databázi zcela správně...

______________________________________________________
http://www.vojtechzahorsky.com


New member

Posts

Joined
Tue Jan 19, 2010 7:18 pm

Post by linkstate » Thu Sep 02, 2010 12:04 am

vojtech25 wrote:Dobry den,

tak toto se zapsalo do chyb. logu:

Code: Select all

2010-08-25 8:49:32 - SELECT COUNT(*) AS total FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '2' AND p2s.store_id = '0' AND (LCASE(pd.name) LIKE '%brousic„≠ kotou‰çe%' OR LCASE(pd.description) LIKE '%brousic„≠ kotou‰çe%' OR LCASE(p.model) LIKE '%brousic„≠ kotou‰çe%') AND p.status = '1' AND p.date_available <= NOW()
vyhledané slovo mělo být brousící kotouče..

Ale už asi vím, kde je problém. V databázi je popis produktu uložen pomocí těch entit.. Čili ram je třeba Diamantov&aacute; bruska, místo Diamantová bruska atp. Tím pádem když pak vyhledávám slovo s "á", nemůže se najít když je uloženo jako "&aacute" .. Je to celkem zvláštní, protože jméno produktu a další věci jsou uložené v databázi zcela správně...
Entity převádí CKeditor, který je integrovaný v OpenCart. Pro vypnutí entit stačí nakonfigurovat v:
admin/view/javascript/ckeditor/config.js

Před konec

Code: Select all

};
vložit:

Code: Select all

	config.entities = false;

http://www.internet24.cz webové služby pro Vás.


Newbie

Posts

Joined
Wed Sep 01, 2010 11:50 pm

Who is online

Users browsing this forum: No registered users and 6 guests