Zadejte hledaný výraz...

Zobrazování hmotnosti, řešení

Na novém VM 2.6.6 se projevuje nemilá chyba, hmotnost a i délkové rozměry zobrazuje na 4 desetinná místa, a to i když to jsou celá čísla. Tedy např. píše 5.0000 kg, 2.5000 kg nebo 0.0250 kg. Joa ještě to zobrazuje s desetinnou tečkou, tu sice lze odstranit jednoduchou substitucí, ale nenašel jsem dostatečně jednoduchý způsob, jak odstranit ty koncové a zbytečné nuly. Pokud si pamatuji, tak u VM 1.1 stačilo tu hmotnost zadat jako např. 5 a už tam ty nuly nedopisoval, to u VM 2 nefunguje.
Zkoušel jsem různá formátování i zaokrouhlování, určitě by na to šlo použít regulárních výrazů nebo mne napadlo to číslo převést na řetězec, odečítat zprava ty nuly a pak ten řetězec zase načíst až k poslední číslici v desetinné části větší než nula, leč tohle je skoro na hraně mých současných programátorských schopností. Čili tudy cesta nevedla.
Nakonec mne napadlo požít kalkulačku v php a vyšlo to naprosto jednoduše a elegantně: stačí to číslo násobit jednou a ty nuly pak php odstranilo samo. Takže celý kód pro zobrazování hmotnosti v detailu produktu vypadá takto:
if (($this->product->product_weight) != 0.0000) {
echo JText::_('COM_VIRTUEMART_PRODUCT_WEIGHT') . ': ';
$product_weight = ($this->product->product_weight);
$product_weight *= 1;
$product_weight = str_replace('.', ',', $product_weight);
echo $product_weight . ' ' . $this->product->product_weight_uom;
echo '
';
}
Tak kdyby někdo řešil stejný problém, tak snad to pomůže...
18. 8. 2014 13:32:14
https://webtrh.cz/diskuse/zobrazovani-hmotnosti-reseni#reply1048589
u Opencart to řeším omezením délky desetinných míst pole v mysql
18. 8. 2014 13:54:16
https://webtrh.cz/diskuse/zobrazovani-hmotnosti-reseni#reply1048588
A co s číslem 0.0025 kg? Tam omezení či zaokrouhlování ořízne platné číslice, navíc tohle není univerzální postup, je to řešení pro odstranění jedné chyby ve VirtueMartu.
18. 8. 2014 13:56:23
https://webtrh.cz/diskuse/zobrazovani-hmotnosti-reseni#reply1048587
Pro odpověď se přihlašte.
Přihlásit