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č toto vše mi přišlo dost složité.
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:
Kód:
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 '<br>';
}
Tak kdyby někdo řešil podobný problém, tak to snad pomůže...