Zeryk Posted November 3, 2020 Share Posted November 3, 2020 Pri prevodu z puvodni meny na US mi vychazi castky typu 8.62$ ..atd. Da se nekde nastavit / prepsat nebo pripsat nejaky radek nekam aby ceny byly trochu normalnejsi? Treba 8.60$ nebo 8.70$ Dekuji Link to comment Share on other sites More sharing options...
knacky Posted November 3, 2020 Share Posted November 3, 2020 .classes/Tools.php Hledat displayPrice a ps_round. ps_round zaokrouhluje desetiny. Když bude 2 zaokrouhlí na 2 desetiny, když bude 1, zaokrouhlí na jednu desetinu. Když bude zaokrouhleno na jednu desetinu, musí se přidat za výsledné číslo 0. Takže, tvůj případ bude vypadat nějak takto. $price = Tools::ps_round($price, 1) . '0'; return displayPrice ($price, $currency); Link to comment Share on other sites More sharing options...
Zeryk Posted November 3, 2020 Author Share Posted November 3, 2020 6 hours ago, knacky said: .classes/Tools.php Hledat displayPrice a ps_round. ps_round zaokrouhluje desetiny. Když bude 2 zaokrouhlí na 2 desetiny, když bude 1, zaokrouhlí na jednu desetinu. Když bude zaokrouhleno na jednu desetinu, musí se přidat za výsledné číslo 0. Takže, tvůj případ bude vypadat nějak takto. $price = Tools::ps_round($price, 1) . '0'; return displayPrice ($price, $currency); diky za odpoved. public static function displayPrice($price, $currency = null, $no_utf8 = false, Context $context = null) { if (!is_numeric($price)) { return $price; } if (!$context) { $context = Context::getContext(); } if ($currency === null) { $currency = $context->currency; } elseif (is_int($currency)) { $currency = Currency::getCurrencyInstance((int)$currency); } displayPrice tam mam jeste v dalsich dvou pripadech a predpokladam ze stejne tak jako v tomto , to nebude. Nebot tam o zaokrouhlovani neni ani radka. ps_round je tam jeste vickrat v ruznych radkach , ale prepodkladam tento je ten ? $price = Tools::ps_round($price, $c_decimals); prepsal jsem to dle navodu a misto sveho webu jsem dostal bilou stranku ;-) tak to asi taky nebude ono. Zapomel jsem napsat , ze mam PS.16.1.24 tam to bude asi jinak nez u noveho 1.7 Link to comment Share on other sites More sharing options...
knacky Posted November 4, 2020 Share Posted November 4, 2020 if (!is_numeric($price)) { $new_price = Tools::ps_round($price,1).'0'; return $new_price; } Link to comment Share on other sites More sharing options...
Guest Posted November 4, 2020 Share Posted November 4, 2020 Škoda, že máš Prestashop 1.6. Pro 1.7 existuje vychytaný modul. Už jsem měl několik dotazů pro úpravu na Prestashop 1.6. Asi se na to vrhnu během dneška. Ukázka modulu pro Prestashop 1.7 https://e-apps.eu/cs/katalog/64-zobrazte-ceny-bez-desetinnych-mist-pro-jednotlive-e-shopy-meny-a-jazyky.html Link to comment Share on other sites More sharing options...
Guest Posted November 4, 2020 Share Posted November 4, 2020 3 hours ago, knacky said: if (!is_numeric($price)) { $new_price = Tools::ps_round($price,1).'0'; return $new_price; } Nee, takto to nebude fungovat. V Prestashop 1.6 je to úplně jinak. Link to comment Share on other sites More sharing options...
Guest Posted November 5, 2020 Share Posted November 5, 2020 (edited) Tak už chystám modul k prodeji i pro Prestashop 1.6 Možnosti nastavení: zobrazit cenu bez desetin / včetně desetin zaokrouhlit cenu podle počtu desetin (0, 1, 2) vybrat jazyk pro který bude platiti pravidlo vybrat měnu pro kterou bude platit pravislo vybrate obchod (multistore) pro který bude platit pravidlo zobrazení měny před / za cenou oddělovač tisíců oddělovač desetin jazyk prostředí CS | EN (lze překládat i do jiných jazyků) Dostupný bude zde: https://e-apps.eu/cs/katalog/69-zobrazte-ceny-bez-desetinnych-mist-nebo-ceny-zaokrouhlete-pro-jednotlive-e-shopy-meny-a-jazyky.html Ukázky modulu: ================================================================= ================================================================= ================================================================= Edited November 5, 2020 by Guest (see edit history) Link to comment Share on other sites More sharing options...
Zeryk Posted November 5, 2020 Author Share Posted November 5, 2020 1 hour ago, Guest said: Tak už chystám modul k prodeji i pro Prestashop 1.6 Možnosti nastavení: zobrazit cenu bez desetin / včetně desetin zaokrouhlit cenu podle počtu desetin (0, 1, 2) vybrat jazyk pro který bude platiti pravidlo vybrat měnu pro kterou bude platit pravislo vybrate obchod (multistore) pro který bude platit pravidlo zobrazení měny před / za cenou oddělovač tisíců oddělovač desetin jazyk prostředí CS | EN (lze překládat i do jiných jazyků) Dostupný bude zde: https://e-apps.eu/cs/katalog/69-zobrazte-ceny-bez-desetinnych-mist-nebo-ceny-zaokrouhlete-pro-jednotlive-e-shopy-meny-a-jazyky.html Ukázky modulu: ================================================================= ================================================================= ================================================================= toto zaokrouhlovani je v zakladni vybave PS1.6 ( preferences - general ) , jde o to ze kdyz dam zaokrouhleni na 1 des. tak cena vypada takto 7.1$ a ne 7.10$ , Ja mam treba cenu 7.13$ a chci aby to melo porad 2 desetiny digits ale zaokrouhlene. tz. 7.10$ ...nebot 7.1$ se mi proste esteticky nelibi. Osobni vec, ale neni zas tak dulezita abych kvuli tomu specialne kupoval modul. Kazdopdne dekuji. Link to comment Share on other sites More sharing options...
Guest Posted November 5, 2020 Share Posted November 5, 2020 Zaokrouhlování tam je, ale defaultně pro všechny měny a jazyky. Chápu. V PS 1.6 to opravdu není jednoduché. Funkce displayPrice jede na formátech podle desetiné (tečky, čárky), oddělovače tisíců (tečka, čárka) ..... Takže když dáš round pro $price, vyjde ti nesmysl, nebo se nezobrazí cena vůbec. Řešil jsem to modulem, abych získal cenu a formát a poté upravil. V případě zadání zaokrouhlení na jednu desetinu doplní nulu atd. Jde o část: switch ($c_format) { case 1: $ret = $c_char.$blank.number_format($price, $c_decimals, '.', ','); break; case 2: $ret = number_format($price, $c_decimals, ',', ' ').$blank.$c_char; break; case 3: $ret = $c_char.$blank.number_format($price, $c_decimals, ',', '.'); break; case 4: $ret = number_format($price, $c_decimals, '.', ',').$blank.$c_char; break; case 5: $ret = $c_char.$blank.number_format($price, $c_decimals, '.', "'"); break; } V PS 1.7 jsem to vyřešil celkem rychle. Modul pro PS 1.7 už mám hotový cca. 3/4 roku a je celkem prodejný. 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